{"componentChunkName":"component---src-templates-post-jsx","path":"/2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(3)/","result":{"data":{"site":{"siteMetadata":{"title":"jigglog","author":"JIGGLYPOP","homepage":"http://jigglog.s3-website.ap-northeast-2.amazonaws.com"}},"post":{"id":"0c21d977-b61c-5678-91c6-810c2eaa4de1","html":"<h1 id=\"1-논리-데이터베이스-설계\" style=\"position:relative;\"><a href=\"#1-%EB%85%BC%EB%A6%AC-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%84%A4%EA%B3%84\" aria-label=\"1 논리 데이터베이스 설계 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>1. 논리 데이터베이스 설계</h1>\n<h3 id=\"데이터베이스-설계\" style=\"position:relative;\"><a href=\"#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%84%A4%EA%B3%84\" aria-label=\"데이터베이스 설계 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>데이터베이스 설계</h3>\n<hr>\n<p>사용자의 요구를 분석하여 그것에 맞게 설계하고 특정 DBMS로 데이터베이스를 구현하여 사용자들이 사용하는 것</p>\n<h5>데이터베이스 설계 순서(요구 조건 , 개념적, 논리적, 물리적, 구현)</h5>\n<ul>\n<li>요구 조건 분석 → 개념적 설계 → 논리적 설계 → 물리적 설계 → 구현</li>\n<li>요구 조건 분석 : 요구 조건 명세서 작성</li>\n<li>개념적 설계 : 개념 스키마, E-R 모델, 트랜잭션 모델링</li>\n<li>논리적 설계 : 논리 스키마 설계 , 트랜잭션 인터페이스 설계</li>\n<li>물리적 설계 : 물리적 구조의 데이터로 변환</li>\n<li>구현 : DDL 로 데이터베이스 생성, 트랜잭션 작성</li>\n</ul>\n<h5>데이터베이스 설계 시 고려사항</h5>\n<ul>\n<li>무결성, 일관성, 회복, 보안, 효율성, 데이터베이스 확장</li>\n</ul>\n<h3 id=\"데이터-모델의-개념\" style=\"position:relative;\"><a href=\"#%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AA%A8%EB%8D%B8%EC%9D%98-%EA%B0%9C%EB%85%90\" aria-label=\"데이터 모델의 개념 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>데이터 모델의 개념</h3>\n<hr>\n<p>현실 세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현한 개념적 모형</p>\n<h5>데이터 모델의 구성 요소</h5>\n<ul>\n<li>개체(Entity), 속성(Attribute), 관계(Relation)</li>\n</ul>\n<h5>데이터 모델의 종류</h5>\n<ul>\n<li>개념적 데이터 모델, 논리적 데이터 모델, 물리적 데이터 모델</li>\n</ul>\n<h5>데이터 모델에 표시할 요소(구조, 연산, 제약 조건)</h5>\n<ul>\n<li>구조(Structure) : 개체 타입들 간의 관계, 데이터 구조 및 정적 성질 표현</li>\n<li>연산(Operation) : 저장된 데이터를 처리하는 작업에 대한 명세, DB를 조작하는 기본 도구</li>\n<li>제약 조건(Constraint) : 데이터의 논리적인 제약 조건</li>\n</ul>\n<h3 id=\"데이터-모델의-구성-요소---개체-속성-관계\" style=\"position:relative;\"><a href=\"#%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AA%A8%EB%8D%B8%EC%9D%98-%EA%B5%AC%EC%84%B1-%EC%9A%94%EC%86%8C---%EA%B0%9C%EC%B2%B4-%EC%86%8D%EC%84%B1-%EA%B4%80%EA%B3%84\" aria-label=\"데이터 모델의 구성 요소   개체 속성 관계 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>데이터 모델의 구성 요소 - 개체, 속성, 관계</h3>\n<p><img src=\"https://k.kakaocdn.net/dn/be49gG/btqBYuEauiK/AuIgZ7dl1bIFRYnj1qHnPK/img.png\" alt=\"img\" style=\"zoom:67%;\">*</p>\n<p>데이터베이스의 표현하려는 정보</p>\n<h5>개체의 특징</h5>\n<ul>\n<li>유형, 무형의 정보로서 서로 연관된 몇 개의 속성으로 이루어짐</li>\n<li>유일한 식별자에 의해 식별이 가능</li>\n<li>개체(튜플)의 수를 카디널리티라고 함</li>\n<li>개체 인스턴스 : 개체를 구성하고 있는 속성들이 값을 가져 하나의 개체를 나타내는 것. 개체 어커런스라고도 함</li>\n<li>자료 흐름도(DFD)를 통해 업무 분석을 했을 경우는 자료 저장소(Data Store)를 이용함.</li>\n</ul>\n<h5>속성의 정의</h5>\n<p>DB를 구성하는 가장 작은 논리적인 단위(데이터 항목 또는 데이터 필드)</p>\n<p>(속성 = 차수= 디그리)</p>\n<h5>속성의 특징</h5>\n<ul>\n<li>개체의 특성을 기술함</li>\n<li>속성의 수를 차수 혹은 디그리(Degree)라고 함</li>\n</ul>\n<h5>속성의 종류</h5>\n<ul>\n<li>기본 속성 : 업무 분석을 통해 정의한 속성. 가장 많고 일반적 ex) 제품명</li>\n<li>설계 속성 : 업무상 존재하지 않지만 설계 과정에서 도출해내는 속성 ex) 제품 코드</li>\n<li>파생 속성 : 다른 속성으로부터 계산되거나 파생된 속성 ex) 제품 판매량, 판매 수익</li>\n</ul>\n<h5>속성의 분류</h5>\n<ul>\n<li>기본키 속성(Primary Key Attribute) : 개체를 식별할 수 있는 속성 ex) 학번</li>\n<li>외래키 속성(Foreign Key Attribute) : 다른 개체와의 관계에서 포함된 속성</li>\n<li>일반 속성 : 개체에 포함되어 있지만 기본키, 외래키가 아닌 속성</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/s3t52/btqBYeO5Nfk/JNSpeHmn7krihj0KufbKGk/img.png\" alt=\"img\" style=\"zoom:67%;\">*</p>\n<p>개체 간의 관계는 점선, 속성 간의 관계는 실선으로 표현</p>\n<h5>관계의 정의</h5>\n<ul>\n<li>개체 간의 논리적인 연결</li>\n</ul>\n<h5>관계의 형태</h5>\n<ul>\n<li>1:1, 1:N, N:M</li>\n</ul>\n<h5>식별 / 비식별 관계</h5>\n<ul>\n<li>식별 관계 : A,B 개체 간의 관계에서 A 개체의 기본키가 B 개체의 외래키면서 동시에 기본인 것</li>\n<li>비식별 관계 : A,B 개체 간의 관계에서 A 개체의 기본키가 B 개체의 외래키이지만 기본키는 아닌 것</li>\n</ul>\n<h3 id=\"식별자\" style=\"position:relative;\"><a href=\"#%EC%8B%9D%EB%B3%84%EC%9E%90\" aria-label=\"식별자 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>식별자</h3>\n<hr>\n<p>하나의 개체 내에서 각각의 인스턴스(구체적인 데이터 값)를 유일하게 구분 지을수 있는 것</p>\n<h5>식별자의 분류</h5>\n<ul>\n<li>대표성 여부 : 개체를 유일하게 식별할 수 있음</li>\n<li>주 식별자(유일성, 최소성, 불변성, 존재성) : 개체를 대표하는 유일한 식별자 ex) 학번</li>\n<li>보조 식별자 : 주 식별자를 대신하여 개체를 식별할 수 있는 것 ex) 주민번호</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/bnESLx/btqB10vXHT6/91iT6rOzGqTHKm2YgepGk0/img.png\" alt=\"img\" style=\"zoom: 50%;\">*</p>\n<ul>\n<li>\n<p>스스로 생성 여부</p>\n<ul>\n<li>내부 식별자 : 개체 내에서 스스로 만들어지는 식별자</li>\n<li>외부 식별자 : 다른 개체와의 관계에서 만들어지는 식별자</li>\n</ul>\n</li>\n<li>\n<p>단일 속성 여부</p>\n<ul>\n<li>단일 식별자 : 주 식별자가 한 가지 속성으로 구성된 식별자</li>\n<li>복합 식별자 : 주 식별자가 두 개 이상의 속성으로 구성된 식별자</li>\n</ul>\n</li>\n<li>\n<p>대체 여부</p>\n<ul>\n<li>원조 식별자(=본질 식별자) : 업무에 의해 만들어지는 가공되지 않은 원래의 식별자</li>\n</ul>\n</li>\n<li>대리 식별자(=대리 식별자) : 주 식별자의 속성이 두 개 이상인 경우 속성들을 하나의 속성으로 묶어 사용하는 식별자</li>\n</ul>\n<h3 id=\"e-r개체-관계-모델\" style=\"position:relative;\"><a href=\"#e-r%EA%B0%9C%EC%B2%B4-%EA%B4%80%EA%B3%84-%EB%AA%A8%EB%8D%B8\" aria-label=\"e r개체 관계 모델 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>E-R(개체-관계) 모델</h3>\n<hr>\n<h5>E-R 모델의 개요</h5>\n<ul>\n<li>E-R 모델은 개념적 데이터 모델의 가장 대표적인 것</li>\n<li>피터첸에 의해 제안되어 기본적인 구성 요소가 적립</li>\n<li>데이터를 개체, 관계, 속성으로 묘사</li>\n</ul>\n<h5>E-R 다이어그램</h5>\n<p>E-R 모델의 기본 아이디어를 쉽게 기호를 사용하여 시각적으로 표현한 것</p>\n<ul>\n<li>피터 첸 표기법, 정보 공학 표기법</li>\n</ul>\n<h5>피터 첸 표기법</h5>\n<ul>\n<li>사각형 : 개체 타입</li>\n<li>마름모 : 관계 타입</li>\n<li>타원 : 속성 타입</li>\n<li>이중 타원 : 복합 속성</li>\n<li>밑줄 타원 : 기본키 속성</li>\n<li>복수 타원 : 복합 속성</li>\n<li>관계 : 1:1, 1:N, N:M 같은 관계에 대한 대응 수</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/eggVok/btqBYtUoLLq/5lfx6zaGyf4q6j5EDGyhck/img.png\" alt=\"img\" style=\"zoom: 50%;\">*</p>\n<p>교수와 학생이 1:N 관계</p>\n<h5>정보 공학 표기법</h5>\n<ul>\n<li>\n<p>관계 표시 기호</p>\n<p>| : 1, O : 0, &#x3C; : N</p>\n</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/88hSB/btqCl9Op22z/wLAkFhtYtgYvMiHm02RiCk/img.png\" alt=\"img\" style=\"zoom:67%;\">*</p>\n<p>교수와 학생이 1:N 관계</p>\n<h3 id=\"관계형-데이터베이스의-구조\" style=\"position:relative;\"><a href=\"#%EA%B4%80%EA%B3%84%ED%98%95-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%9D%98-%EA%B5%AC%EC%A1%B0\" aria-label=\"관계형 데이터베이스의 구조 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>관계형 데이터베이스의 구조</h3>\n<hr>\n<p>개체, 속성, 관계를 모두 표로 표현, 간결하고 보기 편하며 다른 데이터베이스로의 변환이 용이</p>\n<h5>관계형 데이터베이스의 구조</h5>\n<ul>\n<li>\n<p>튜플</p>\n<ul>\n<li>릴레이션을 구성하는 각각의 행</li>\n<li>튜플의 수를 카디널리티(Cardinality)라고 함</li>\n</ul>\n</li>\n<li>\n<p>속성</p>\n<ul>\n<li>데이터베이스를 구성하는 가장 작은 논리적인 단위</li>\n</ul>\n</li>\n<li>\n<p>개체의 특성을 기술</p>\n<ul>\n<li>속성의 수를 디그리(Degree) 또는 차수라고 함</li>\n</ul>\n</li>\n<li>\n<p>도메인</p>\n<ul>\n<li>속성이 취할 수 있는 값의 범위</li>\n<li>ex) 학년의 도메인 : 1~4</li>\n</ul>\n</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/dGvgtu/btqB2ucwMwn/2q719BsLFkv7rFSddIkSwK/img.png\" alt=\"img\" style=\"zoom: 50%;\">*</p>\n<h5>릴레이션의 특징</h5>\n<ul>\n<li>\n<p>튜플</p>\n<ul>\n<li>똑같은 튜플이 있을 수 없음. 모두 상이하다</li>\n</ul>\n</li>\n<li>\n<p>튜플에는 순서가 없음</p>\n<ul>\n<li>튜플의 삽입, 삭제로 인해 시간에 따라 변함</li>\n</ul>\n</li>\n<li>\n<p>속성</p>\n<ul>\n<li>속성의 명칭은 유일해야 하지만 속성을 구성하는 값은 다를 수 있음</li>\n</ul>\n</li>\n<li>\n<p>속성에는 순서가 없음</p>\n<ul>\n<li>속성들은 원자 값(Atomic-Value)를 가짐</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"관계형-데이터베이스의-제약-조건---key\" style=\"position:relative;\"><a href=\"#%EA%B4%80%EA%B3%84%ED%98%95-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%9D%98-%EC%A0%9C%EC%95%BD-%EC%A1%B0%EA%B1%B4---key\" aria-label=\"관계형 데이터베이스의 제약 조건   key permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>관계형 데이터베이스의 제약 조건 - Key</h3>\n<hr>\n<p>key는 데이터베이스에서 조건에 맞는 튜플을 찾거나 정렬할 때 튜플을 서로 구분할 수 있는 기준이 되는 속성</p>\n<h5>Key의 종류</h5>\n<ul>\n<li>\n<p>후보키</p>\n<ul>\n<li>기본키로 사용할 수 있는 속성</li>\n<li>유일성과 최소성의 성질을 만족</li>\n</ul>\n</li>\n<li>\n<p>기본키</p>\n<ul>\n<li>후보 키 중에서 선정된 Main Key로 중복된 값을 가질 수 없음</li>\n<li>후보 키의 부분집합</li>\n<li>NULL 값을 가질 수 없음(=개체 무결성), 정보의 부재를 나타내기 위해 사용하는 값. 0의 값이 아님</li>\n</ul>\n</li>\n<li>\n<p>대체키</p>\n<ul>\n<li>후보 키가 둘 이상일 때 기본키를 제외한 나머지 후보키</li>\n</ul>\n</li>\n<li>\n<p>슈퍼키</p>\n<ul>\n<li>한 가지 속성일 땐 Key가 될 수 없지만 여러 속성이 뭉쳐서 Key의 속성을 가짐</li>\n<li>유일성의 성질을 만족</li>\n</ul>\n</li>\n<li>\n<p>외래키</p>\n<ul>\n<li>다른 릴레이션의 기본 키를 참조한 것</li>\n<li>외래 키의 값은 참조한 릴레이션의 기본키 값과 동일해야 함(=참조 무결성)</li>\n</ul>\n</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/xd7ex/btqB4Z5DBmW/QZd3KmI82FvkkabIE10ifK/img.png\" alt=\"img\" style=\"zoom:67%;\">*</p>\n<h3 id=\"관계형-데이터베이스의-제약조건---무결성\" style=\"position:relative;\"><a href=\"#%EA%B4%80%EA%B3%84%ED%98%95-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%9D%98-%EC%A0%9C%EC%95%BD%EC%A1%B0%EA%B1%B4---%EB%AC%B4%EA%B2%B0%EC%84%B1\" aria-label=\"관계형 데이터베이스의 제약조건   무결성 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>관계형 데이터베이스의 제약조건 - 무결성</h3>\n<hr>\n<p>무결성은 데이터베이스의 저장된 데이터 값과 그것이 표현하는 실제 값이 일치하는 정확성을 의미</p>\n<h5>무결성의 종류</h5>\n<ul>\n<li>개체 무결성 : 기본키를 구성하는 어떤 속성도 NULL 값이나 중복 값이면 안됨</li>\n<li>도메인 무결성 : 속성의 값이 도메인에 속한 값이어야 함</li>\n<li>참조 무결성 : 외래 키의 값은 참조한 릴레이션의 기본키 값과 동일해야 함</li>\n<li>사용자 정의 무결성 : 속성 값들은 사용자가 정의한 제약 조건에 만족해야 함</li>\n</ul>\n<h5>무결성 강화</h5>\n<ul>\n<li>\n<p>애플리케이션</p>\n<ul>\n<li>무결성 조건을 검증하는 코드를 데이터를 조작하는 프로그램 내에 추가</li>\n<li>사용자 정의 같은 복잡한 무결성 조건의 구현이 가능</li>\n</ul>\n</li>\n<li>\n<p>데이터베이스 트리거</p>\n<ul>\n<li>트리거 : 데이터베이스 시스템에 이벤트가 발생할 때마다 자동으로 수행되는 절차형 SQL</li>\n</ul>\n</li>\n<li>\n<p>제약 조건</p>\n<ul>\n<li>데이터베이스 제약 조건을 설정하여 무결성을 유지</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"관계-대수-및-관계-해석\" style=\"position:relative;\"><a href=\"#%EA%B4%80%EA%B3%84-%EB%8C%80%EC%88%98-%EB%B0%8F-%EA%B4%80%EA%B3%84-%ED%95%B4%EC%84%9D\" aria-label=\"관계 대수 및 관계 해석 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>관계 대수 및 관계 해석</h3>\n<hr>\n<h5>관계 데이터 언어</h5>\n<ul>\n<li>관계 대수 : 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해 유도하는 것을 기술하는 절차적 언어</li>\n<li>관계 해석 : 관계 데이터의 연산을 표현하는 비절차적 언어</li>\n</ul>\n<h5>관계 대수의 연산자</h5>\n<ul>\n<li>\n<p>Select(σ, σ&#x3C;조건*(R), R은 릴레이션을 의미)</p>\n<p>조건을 만족하는 튜플을 구하여 새로운 릴레이션을 만드는 연산(수평 연산)</p>\n<ul>\n<li>ex) σ평균*80 (성적) : 성적 릴레이션에서 평균값이 80 이상인 튜플을 구함</li>\n</ul>\n</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/3eZ6a/btqB3qbyXHq/5YjyfQkNDYuMVa2ZTqKJMK/img.png\" alt=\"img\" style=\"zoom:67%;\">*</p>\n<ul>\n<li>\n<p>Project(π, π&#x3C;조건*(R))</p>\n<p>속성만 추출하여 새로운 릴레이션을 만드는 연산(=수직연산)</p>\n<p>연산 결과에 중복이 발생하면 제거</p>\n<ul>\n<li>ex) π이름, 평균(성적) : 성적 릴레이션에서 이름, 평균 속성을 추출</li>\n</ul>\n</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/bl9v71/btqB5F6IJFf/EKJipEdOP47X65XiK3yabk/img.png\" alt=\"img\" style=\"zoom:67%;\">*</p>\n<ul>\n<li>\n<p>Join(⋈, R⋈키 속성 r=키 속성 sS )</p>\n<p>두 릴레이션을 합쳐서 새로운 릴레이션을 만드는 연산</p>\n<p>Join의 결과로 만들어진 릴레이션의 차수는 두 차수의 합</p>\n<p>Join의 결과는 교차곱(Cartesian Product)을 수행 후 Select 한 것과 같음</p>\n<ul>\n<li>ex) 성적⋈이름=이름 명부 : 성적 릴레이션과 명부 릴레이션을 이름 속성을 기준으로 합침</li>\n<li>자연 조인 : Join의 조건이 같을 때 동일한 속성이 두 번 나타나 중복된 속성을 제거하여 한번만 표기하는 방법</li>\n<li>자연 조인이 성립되려면 두 릴레이션의 속성명과 도메인이 같아야 함</li>\n</ul>\n</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/bUnuMQ/btqB6jbjaGg/nu18ceMDzQbDL4WKv73pN1/img.png\" alt=\"img\" style=\"zoom:67%;\">*</p>\n<ul>\n<li>\n<p>Division(÷, R [속성 r ÷ 속성 s] S)</p>\n<p>R ⊃ S인 두 릴레이션이 있을 때, R의 속성이 S의 속성의 값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산</p>\n<ul>\n<li>ex) 성적 [평균 ÷ 기준] 기준</li>\n</ul>\n</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/bljHpt/btqB5gTEtdO/c3FjWsNyBZYkXEga1KsPv0/img.png\" alt=\"img\" style=\"zoom:67%;\">*</p>\n<ul>\n<li>\n<p>일반 집합 연산자</p>\n<ul>\n<li>합집합(∪) : 두 릴레이션의 튜플의 합집합. 중복되는 튜플은 제거</li>\n<li>교집합(∩) : 두 필레이션의 튜플의 교집합.</li>\n<li>차집합(-) : 두 릴레이션의 튜플의 차집합.</li>\n<li>교차곱(×) : 두 릴레이션의 튜플들의 순서쌍. 차수(Degree)는 서로 더한 값 카디널리티(Cardinality)는 서로 곱한 값</li>\n</ul>\n</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/LhuM2/btqB5hE0eTx/uzxQLzr4KWeQ80kg6vc3Tk/img.png\" alt=\"img\" style=\"zoom:67%;\">*</p>\n<h3 id=\"정규화normalization\" style=\"position:relative;\"><a href=\"#%EC%A0%95%EA%B7%9C%ED%99%94normalization\" aria-label=\"정규화normalization permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>정규화(Normalization)</h3>\n<hr>\n<p>관계형 데이터베이스에서 정확성을 더욱 유지하기 위해 스키마를 쪼개는 과정, 데이터베이스의 논리적 설계 단계에서 수행</p>\n<h5>정규화의 목적</h5>\n<ul>\n<li>데이터 구조의 안정성 및 무결성을 유지</li>\n<li>이상의 발생을 방지 및 자료 저장 공간의 최소화</li>\n</ul>\n<h5>이상(Anomaly)</h5>\n<ul>\n<li>사용자의 의도와는 상관없이 데이터가 삽입, 삭제, 갱신되는 현상</li>\n</ul>\n<h5>정규화 과정</h5>\n<ul>\n<li>1NF _ 2NF _ 3NF _ BCNF _ 4NF * 5NF</li>\n<li>\n<p>1NF(제1 정규형)</p>\n<ul>\n<li>릴레이션에 속한 모든 값들이 원자 값으로만 구성</li>\n</ul>\n</li>\n<li>\n<p>2NF(제2 정규형)</p>\n<ul>\n<li>기본키가 아닌 모든 속성이 기본키에 대하여 완전 함수적 종속을 만족</li>\n<li>완전 함수적 종속 : 기본키에 의해서 속성이 결정</li>\n<li>부분 함수적 종속 : 기본키의 일부에 의해 속성이 결정</li>\n<li>아래와 같이 학번과 과목 코드가 기본키인 릴레이션이 있을 때</li>\n<li>과목 점수는 기본키(학번, 과목 코드)를 가지고 알 수 있음 = 완전 함수적 종속</li>\n<li>이름은 기본키의 일부(학번)를 가지고 알수 있음 = 부분 함수적 종속</li>\n</ul>\n</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/xkNP8/btqB6IWeNsO/On3jgdQ2LT1Q87ZiXO6020/img.png\" alt=\"img\" style=\"zoom:67%;\">*</p>\n<ul>\n<li>\n<p>3NF(제3 정규형)</p>\n<ul>\n<li>기본키가 아닌 모든 속성이 기본키에 대해 이행적 종속을 만족하지 않음</li>\n<li>이행적 종속 : A → B, B → C 일 때 A → C를 만족하는 관계</li>\n</ul>\n</li>\n<li>\n<p>BCNF(Boyce-Codd정규형)</p>\n<ul>\n<li>결정자가 모두 후보키</li>\n</ul>\n</li>\n<li>\n<p>4NF(제4 정규형)</p>\n<ul>\n<li>릴레이션에 다치 종속이 성립하는 경우 모든 속성이 함수적 종속 관계를 만족</li>\n</ul>\n</li>\n<li>\n<p>5NF(제5 정규형)</p>\n<ul>\n<li>모든 조인 종속이 후보키를 통해서만 성립</li>\n</ul>\n</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/btd7lf/btqB2vkfpUj/DkFNmBoJ0r2L9Zvap5oJKK/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<ul>\n<li>도부이걸다조</li>\n</ul>\n<h3 id=\"반정규화denormalization\" style=\"position:relative;\"><a href=\"#%EB%B0%98%EC%A0%95%EA%B7%9C%ED%99%94denormalization\" aria-label=\"반정규화denormalization permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>반정규화(Denormalization)</h3>\n<hr>\n<p>정규화된 데이터를 다시 통합, 중복, 분리하는 과정으로 의도적으로 정규화 원칙을 위해, 과도한 정규화로 성능이 떨어졌을 때 실행</p>\n<h5>반정규화의 종류</h5>\n<ul>\n<li>\n<p>테이블 통합</p>\n<ul>\n<li>하나의 테이블로 합쳐 사용하는 것이 성능 향상에 도움이 될 경우 수행</li>\n<li>Not NULL, Default, Check 등의 제약조건을 설계하기 어려움</li>\n</ul>\n</li>\n<li>\n<p>테이블 분할</p>\n<ul>\n<li>테이블을 수평 또는 수직으로 분할</li>\n</ul>\n</li>\n<li>\n<p>중복 테이블 추가</p>\n<ul>\n<li>여러 테이블에서 데이터를 추출해서 사용해야 하거나 다른 서버에 저장된 테이블을 이용해야 하는 경우 수행</li>\n</ul>\n</li>\n<li>\n<p>중복 속성 추가</p>\n<ul>\n<li>조인해서 데이터를 처리할 때 데이터를 조회하는 경로를 단축하기 위해 자주 사용하는 속성을 하나 더 추가</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"시스템-카탈로그\" style=\"position:relative;\"><a href=\"#%EC%8B%9C%EC%8A%A4%ED%85%9C-%EC%B9%B4%ED%83%88%EB%A1%9C%EA%B7%B8\" aria-label=\"시스템 카탈로그 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>시스템 카탈로그</h3>\n<hr>\n<h5>시스템 카탈로그의 의미</h5>\n<ul>\n<li>시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스</li>\n<li>데이터 사전(Data Dictionary)이라고도 함</li>\n</ul>\n<h5>시스템 카탈로그 저장 정보</h5>\n<ul>\n<li>시스템 카탈로그에 저장되는 정보를 메타 데이터라고 함</li>\n<li>메타 데이터 : 데이터에 대한 설명. 메타 데이터가 모이면 데이터 사전이 됨</li>\n<li>\n<p>메타 데이터의 유형</p>\n<ul>\n<li>데이터 베이스 객체 정보 : Table, Index, View 등의 구조 및 통계 정보</li>\n</ul>\n</li>\n<li>\n<p>사용자 정보</p>\n<ul>\n<li>테이블의 무결성 제약 조건 정보</li>\n</ul>\n</li>\n<li>함수, 프로시저, 트리거 등에 대한 정보</li>\n</ul>\n<h5>시스템 카탈로그의 특징</h5>\n<ul>\n<li>시스템 테이블로 구성되어 있어 SQL문으로 검색해 볼 수 있음</li>\n<li>DML(INSERT, DELETE, UPDATE) 문으로 갱신이 불가능</li>\n</ul>\n<h1 id=\"2-물리-데이터베이스-설계\" style=\"position:relative;\"><a href=\"#2-%EB%AC%BC%EB%A6%AC-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%84%A4%EA%B3%84\" aria-label=\"2 물리 데이터베이스 설계 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>2. 물리 데이터베이스 설계</h1>\n<h3 id=\"사전-조사-분석\" style=\"position:relative;\"><a href=\"#%EC%82%AC%EC%A0%84-%EC%A1%B0%EC%82%AC-%EB%B6%84%EC%84%9D\" aria-label=\"사전 조사 분석 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>사전 조사 분석</h3>\n<hr>\n<h5>물리 데이터베이스 설계</h5>\n<ul>\n<li>논리적 구조로 표현된 논리적 데이터베이스를 디스크 등의 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변화하는 과정</li>\n<li>\n<p>물리적 설계 단계에서 수행해야 할 것</p>\n<ul>\n<li>저장 레코드의 양식 설계, 레코드 집중의 분석 및 설계, 접근 경로 설계</li>\n</ul>\n</li>\n<li>\n<p>물리적 설계 옵션</p>\n<ul>\n<li>반응시간 : 트랜잭션 수행을 요구한 시점부터 처리 결과를 얻을 때까지의 경과 시간</li>\n<li>공간 활용도 : 데이터베이스 파일과 액세스 경로 구조에 의해 사용되는 저장공간의 양</li>\n<li>트랜잭션 처리량 : 단위시간 동안 데이터베이스 시스템에 의해 처리될 수 있는 트랜잭션의 평균 개수</li>\n</ul>\n</li>\n</ul>\n<h5>데이터 명명 규칙 파악</h5>\n<ul>\n<li>물리 데이터 모델에 적용해야하는 규칙</li>\n<li>데이터 표준화 및 논리 데이터베이스 설계의 결과물들을 통해 파악</li>\n<li>물리-논리 데이터베이스 설계 적용되는 명명규칙은 일관성 유지</li>\n<li>명명 규칙을 파악하기 위해선 도메인과 데이터 사전에 대한 지식 필요</li>\n</ul>\n<h5>시스템 자원 파악</h5>\n<ul>\n<li>데이터베이스 설치에 영향을 미칠 수 있는 물리적인 요소</li>\n<li>하드웨어 자원, 운영체제 및 DBMS의 버전, DMBS 파라미터 정보 등으로 구분</li>\n</ul>\n<h5>데이터베이스 관리 요소 파악</h5>\n<ul>\n<li>데이터베이스 운영과 관련된 관리요소</li>\n<li>데이터베이스 관리 요소를 파악한 후 이를 기반으로 시스템 조사 분석서를 작성</li>\n<li>\n<p>시스템 조사 분석서를 기반으로 다음과 같은 요소들을 파악</p>\n<ul>\n<li>데이터베이스 구조 : 데이터베이스 구조에 따라 문제 발생 시 대응 방법이 다름</li>\n<li>이중화 구성 : 문제 발생에 대비하여 동일한 데이터베이스를 복제하여 관리</li>\n<li>분산 데이터베이스 : 물리적인 피해에 데이터 유실을 최소화할 수 있고 장애로 인한 데이터 유실 복구에 효과적</li>\n<li>접근 제어 / 통제 : 접근 가능한 사용자의 권한 남용으로 인한 정보 유출 및 변조가 빈번하게 발생</li>\n</ul>\n</li>\n<li>DB암호화 : 데이터 암호화, 암호 키에 대한 인증 등을 통해 데이터 유출 시 데이터의 복호화를 어렵게 함</li>\n</ul>\n<h3 id=\"데이터베이스-저장-공간-설계\" style=\"position:relative;\"><a href=\"#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%A0%80%EC%9E%A5-%EA%B3%B5%EA%B0%84-%EC%84%A4%EA%B3%84\" aria-label=\"데이터베이스 저장 공간 설계 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>데이터베이스 저장 공간 설계</h3>\n<hr>\n<h5>테이블</h5>\n<ul>\n<li>데이터베이스의 가장 기본적인 객체로써 행(Row)과 열(Column)으로 구성됨</li>\n<li>논리 설계 단계의 개체(Entity)에 대응하는 객체</li>\n<li>일반 테이블, 클러스터 인덱스 테이블, 파티셔닝 테이블, 외부 테이블, 임시 테이블</li>\n</ul>\n<h5>일반 테이블</h5>\n<ul>\n<li>현재 사용되는 대부분의 DBMS(DataBase Management System)에서 표준 테이블로 사용되는 테이블</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/G9QrY/btqCgSFgXbM/BKbTHTqsG3rKPE54FuUbN1/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<h5>클러스터드 인덱스 테이블</h5>\n<ul>\n<li>기본키나 인덱스키의 순서에 따라 데이터가 저장되는 테이블</li>\n<li>일반적인 인덱스를 사용하는 테이블에 비해 접근 경로가 단축</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/cE6yXQ/btqCiowTfuB/NxaeWspvpJtWqU6lcdk3s0/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<h5>파티셔닝 테이블</h5>\n<ul>\n<li>대용량의 테이블을 작은 논리적인 단위인 파티션으로 나눈 테이블</li>\n<li>대용량의 데이터를 효과적으로 관리할 수 있지만 파티션 키를 잘못 구성하면 성능 저하 등 역효과를 초래할 수 있음</li>\n<li>\n<p>방식에 따라 범위 분할, 해시 분할, 조합 분할 등으로 나뉨</p>\n<ul>\n<li>범위 분할 : 지정한 열의 값을 기준으로 분할</li>\n<li>해시 분할 : 해시 함수를 적용한 결과 값에 따라 데이터를 분할</li>\n<li>조합 분할 : 범위 분할로 분할한 다음 해시 함수를 적용하여 다시 분할</li>\n</ul>\n</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/npi3j/btqCdhzpT0L/BL2Oc8u1ALkaHpJ7uqDxPK/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<h5>외부 테이블</h5>\n<ul>\n<li>데이터베이스에서 일반 테이블처럼 이용할 수 있는 외부 파일로 데이터베이스 내에 객체로 존재</li>\n<li>데이터 쉐어하우스, ETL(Extraction Transformation Loading, 추출 변환 적재) 등의 작업에 사용</li>\n</ul>\n<h5>임시 테이블</h5>\n<ul>\n<li>트랜잭션이나 세션별로 데이터를 저장하고 처리할 수 있는 테이블</li>\n<li>절차적인 처리를 위해 임시로 사용</li>\n<li>저장된 데이터는 트랜잭션이 종료되면 삭제</li>\n</ul>\n<h5>칼럼</h5>\n<ul>\n<li>테이블의 열을 구성하는 요소로 데이터 타입과 길이 등으로 정의</li>\n<li>데이터 타입은 데이터의 일관성 유지를 위해 사용되는 가장 기본적인 것</li>\n<li>도메인을 정의한 경우 도메인에 따라 데이터의 타입과 길이가 정의</li>\n<li>두 칼럼을 비교하는 연산에서 두 칼럼의 데이터 타입이나 길이가 다르면 DBMS 내부적으로 데이터 타입 변화 후 비교 연산 수행</li>\n<li>참조 관계인 칼럼들은 데이터 타입과 길이가 일치해야 함</li>\n</ul>\n<h5>테이블스페이스</h5>\n<ul>\n<li>테이블이 저장되는 논리적인 영역으로 하나의 테이블스페이스에 하나 또는 그 이상의 테이블을 저장할 수 있음</li>\n<li>테이블을 저장하면 논리적으론 테이블스페이스에 물리적으론 연관된 데이터 파일에 저장됨</li>\n<li>\n<p>테이블스페이스를 테이블, 테이블스페이스, 데이터 파일로 나눠 관리하면 논리적 구성이 물리적 구성에 종속되지 않아 투명성이 보장됨</p>\n<ul>\n<li>투명성 : 사실의 존재 여부를 염두에 두지 않아도 되는 성질</li>\n</ul>\n</li>\n<li>데이터베이스에 저장되는 내용에 따라 테이블, 인덱스, 임시 등의 용도로 구분하여 설계</li>\n</ul>\n<h3 id=\"트랜잭션-및-crud-분석\" style=\"position:relative;\"><a href=\"#%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98-%EB%B0%8F-crud-%EB%B6%84%EC%84%9D\" aria-label=\"트랜잭션 및 crud 분석 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>트랜잭션 및 CRUD 분석</h3>\n<hr>\n<p>데이터베이스의 상태를 변환시키는 하나의 논리적인 기능을 수행하기 위한 작업 단위 또는 한꺼번에 수행되어야 할 일련의 연산들을 의미</p>\n<p>데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적인 단위</p>\n<p>사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업 단위</p>\n<h5>트랜잭션의 특성</h5>\n<ul>\n<li>\n<p>원자성(Atomicity)</p>\n<ul>\n<li>데이터베이스에 반영되도록 완전히 완료 아니면 전혀 반영되지 않도록 복구되어야 함</li>\n</ul>\n</li>\n<li>어느 하나라도 오류가 발생하면 트랜잭션 전부가 취소되어야 함</li>\n<li>\n<p>일관성(Consistency)</p>\n<ul>\n<li>문법을 일괄적으로 맞춰야 함</li>\n</ul>\n</li>\n<li>\n<p>트랜잭션을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환</p>\n<ul>\n<li>시스템이 가지고 있는 고정 요소는 트랜잭션 수행 전과 후가 상태가 같아야 함</li>\n</ul>\n</li>\n<li>\n<p>독립성(Isolation)</p>\n<ul>\n<li>하나의 트랜잭션 연산 중에는 다른 트랜잭션이 관여하면 안 됨</li>\n<li>수행 중인 트랜잭션은 완전히 완료될 때까지 다른 트랜잭션에서 수행 결과를 참조할 수 없음</li>\n</ul>\n</li>\n<li>\n<p>지속성(Durability)</p>\n<ul>\n<li>성공적으로 완료된 트랜잭션의 결과는 영구적으로 유지, 반영되어야 함</li>\n</ul>\n</li>\n</ul>\n<h5>CRUD 분석</h5>\n<ul>\n<li>데이터베이스의 테이블에 변화를 주는 트랜잭션 연산 중 생성(Create), 읽기(Read), 갱신(Update), 삭제(Delete)의 연산에 대해 CRUD 매트릭스를 작성하여 분석하는 것</li>\n<li>테이블에 발생되는 트랜잭션의 주기별 발생 횟수를 파악하고 연관된 테이블들을 분석하면 테이블에 저장되는 데이터의 양을 유추할 수 있음</li>\n</ul>\n<h5>CRUD 매트릭스</h5>\n<ul>\n<li>2차원 표로 행에는 프로세스 열에는 테이블을 행과 열이 만나는 위치에는 프로세스가 테이블에 발생시키는 변화를 표시하는 업무 프로세스와 데이터 간 상관 분석표</li>\n<li>CRUD 매트릭스를 통해 프로세스의 트랜잭션이 테이블에 수행하는 작업을 검증</li>\n<li>CRUD 매트릭스의 각 셀에는 C, R, U, D가 들어가고 복수의 작업 시에는 우선순위는 C >D > U > R를 적용</li>\n<li>CRUD 매트릭스가 완성되면 C, R, U, D 중 어느 것도 적히지 않는 행이나 열, C나 R이 없는 행을 확인하여 불필요하거나 누락된 테이블 또는 프로세스를 찾음</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/rDa6p/btqCinx0CJT/k3CKsAsKJWN2Dpa28rUVv0/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<h5>트랜잭션 분석</h5>\n<ul>\n<li>CRUD 매트릭스를 기반으로 테이블에 발생하는 트랜잭션 양을 분석하고 테이블에 저장되는 데이터의 양을 유추하고 이를 근거로 DB용량을 산정, DB 구조를 최적화하는 것</li>\n</ul>\n<h5>트랜잭션 분석서</h5>\n<ul>\n<li>단위 프로세스와 CRUD 매트릭스를 이용하여 작성</li>\n<li>구성 요소에는 단위 프로세스, CRUD 연산, 테이블 명, 칼럼명, 테이블 참조 횟수, 트랜잭션 수, 발생 주기 등</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/dI5d1M/btqCeuSETbH/u9smlvIDB2MRPQSqPVcppK/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<h3 id=\"인덱스-설계\" style=\"position:relative;\"><a href=\"#%EC%9D%B8%EB%8D%B1%EC%8A%A4-%EC%84%A4%EA%B3%84\" aria-label=\"인덱스 설계 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>인덱스 설계</h3>\n<hr>\n<h5>인덱스의 개념</h5>\n<ul>\n<li>데이터 레코드를 빠르게 접근하기 위해 키값, 포인터 쌍으로 구성되는 데이터 구조</li>\n<li>책의 목차와 유사</li>\n<li>데이터가 저장된 물리적 구조와 밀접한 관계가 있음</li>\n<li>파일의 레코드에 대한 액세스를 빠르게 수행할 수 있음</li>\n<li>\n<p>인덱스가 없으면 특정한 값을 찾기 위해 모든 데이터 페이지를 확인하는 TABLE SCAN이 발생</p>\n<ul>\n<li>TABLE SCAN : 데이터가 나올 때까지 모든 레코드를 순차적으로 읽는 것</li>\n</ul>\n</li>\n<li>레코드의 삽입과 삭제가 수시로 일어나는 경우에는 인덱스의 개수를 최소로 하는 것이 효율적</li>\n<li>클러스터드 인덱스 : 인덱스 키의 순서에 따라 데이터가 정렬되어 저장되는 방식</li>\n<li>넌클러스터드 인덱스 : 인덱스의 키 값만 정렬되어 있을 뿐 실제 데이터는 정렬되지 않는 방식</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/bmbstJ/btqCjffJ9AL/tq3kDZ3ky1FAp9HeQZSp21/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<h5>트리 기반 인덱스</h5>\n<ul>\n<li>인덱스를 저장하는 블록들이 트리 구조를 이루고 있는 것으로 상용 DBMS에서는 트리 구조 기반의 B+ 트리 인덱스를 주로 활용</li>\n<li>\n<p>B 트리 인덱스</p>\n<ul>\n<li>일반적으로 사용하는 인덱스 방식</li>\n<li>루트 노드에서 하위 노드로 키값의 크기를 비교하면서 데이터를 검색</li>\n<li>모든 리프 노드의 레벨은 같음</li>\n</ul>\n</li>\n<li>\n<p>B+ 트리 인덱스</p>\n<ul>\n<li>단말 노드가 아닌 노드로 구성된 인덱스 세트, 단말 노드로만 구성된 순차 세트로 구분</li>\n</ul>\n</li>\n<li>\n<p>인덱스 세트에 있는 노드들은 단말 노드에 있는 키 값을 찾아갈 수 있는 경로로만 제공</p>\n<ul>\n<li>순차 세트에 있는 단말 노드가 해당 데이터 레코드의 주소를 가리킴</li>\n</ul>\n</li>\n<li>인덱스 세트에 있는 모든 키 값이 단말 노드에 다시 나타나므로 단말 노드 만을 이용한 순차 처리 가능</li>\n</ul>\n<h5>비트맵 인덱스</h5>\n<ul>\n<li>인덱스 칼럼의 데이터를 Bit 값인 0 또는 1로 변환하여 인덱스 키로 사용하는 방법</li>\n<li>키 값을 포함하는 로우(Row)의 주소를 제공</li>\n<li>데이터가 Bit로 구성되어 있어 효율적인 논리 연산이 가능하고 저장공간이 작음</li>\n</ul>\n<h5>함수 기반 인덱스</h5>\n<ul>\n<li>칼럼의 값 대신 칼럼의 특정 함수나 수식을 적용하여 산출된 값을 사용</li>\n<li>B+ 트리 인덱스 또는 비트맵 인덱스를 생성하여 사용</li>\n<li>데이터를 입력하거나 수정할 때 함수를 적용하기 때문에 부하가 발생할 수 있음</li>\n<li>사용자 정의 함수를 사용했을 경우 시스템 함수보다 부하가 더 크다</li>\n<li>대소문자, 띄어쓰기 등에 상관없이 조회할 때</li>\n</ul>\n<h5>비트맵 조인 인덱스</h5>\n<ul>\n<li>다수의 조인된 객체로 구성된 인덱스</li>\n</ul>\n<h5>도메인 인덱스</h5>\n<ul>\n<li>개발자가 필요한 인덱스를 직접 만들어 사용하는 것으로 확장형 인덱스라고도 함</li>\n</ul>\n<h5>인덱스 설계 순서</h5>\n<ul>\n<li>인덱스의 대상 테이블이나 칼럼 등을 선정 → 인덱스의 효율성을 검토하여 인덱스 최적화 수행 → 인덱스 정의서 작성</li>\n</ul>\n<h5>인덱스 테이블 선정 기준</h5>\n<ul>\n<li>\n<p>MULTI BLOCK READ 수에 따라 판단</p>\n<ul>\n<li>MULTI BLOCK READ : 테이블 액세스 시 메모리에 한 번에 읽어 들일 수 있는 블록의 수</li>\n</ul>\n</li>\n<li>랜덤 액세스가 빈번한 테이블</li>\n<li>특정 범위나 특정 순서로 데이터 조회가 필요한 테이블</li>\n<li>다른 테이블과 순차적 조인이 발생되는 테이블</li>\n</ul>\n<h5>인덱스 설계 시 고려사항</h5>\n<ul>\n<li>새로 추가되는 인덱스는 기존 액세스 경로에 영향을 미칠 수 있음</li>\n<li>인덱스를 지나치게 만들면 오버헤드 발생</li>\n<li>넓은 범위를 인덱스로 처리하면 많은 오버헤드 발생</li>\n<li>인덱스를 만들면 추가적인 저장공간 필요</li>\n<li>인덱스와 테이블 데이터의 저장 공간이 분리되도록 설계</li>\n</ul>\n<h3 id=\"뷰-설계\" style=\"position:relative;\"><a href=\"#%EB%B7%B0-%EC%84%A4%EA%B3%84\" aria-label=\"뷰 설계 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>뷰 설계</h3>\n<hr>\n<h5>뷰의 개요</h5>\n<ul>\n<li>사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 이름을 가지는 가상 테이블</li>\n<li>물리적으로 존재하지는 않지만 사용자에게는 있는 것처럼 간주됨</li>\n<li>데이터 보정 작업, 처리 과정 시험 등 임시적인 작업을 위한 용도로 활용</li>\n<li>조인문의 최소화로 사용자 편의성을 최대화함</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/8DeDC/btqCe47C7yk/iYx2xC0dIfvx3ryKZnA8gk/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<h5>뷰의 특징</h5>\n<ul>\n<li>기본 테이블과 같은 형태의 구조를 사용하고 조작도 기본 테이블과 거의 같음</li>\n<li>가상테이블이기 때문에 물리적으로 구현되어 있지 않음</li>\n<li>데이터의 논리적 독립성을 제공할 수 있음</li>\n<li>필요한 데이터만 뷰로 정의해서 처리할 수 있기 때문에 관리가 용이하고 명령문이 간단해짐</li>\n<li>뷰를 통해서만 데이터에 접근하게 되면 뷰에 나타나지 않는 데이터를 안전하게 보호하는 효율적인 기법으로 사용할 수 있음</li>\n<li>뷰가 정의된 기본 테이블이나 뷰를 삭제 시 그 테이블이나 뷰를 기초로 정의된 다른 뷰도 자동으로 삭제</li>\n</ul>\n<h5>뷰의 장단점</h5>\n<ul>\n<li>\n<p>장점</p>\n<ul>\n<li>논리적 데이터 독립성 제공</li>\n<li>동일 데이터에 대해 동시에 여러 사용자의 상이한 요구를 지원</li>\n<li>사용자의 데이터 관리가 용이</li>\n<li>접근 제어를 통한 자동 보안 제공</li>\n</ul>\n</li>\n<li>\n<p>단점</p>\n<ul>\n<li>독립적인 인덱스를 가질 수 없음</li>\n</ul>\n</li>\n<li>\n<p>뷰의 정의 변경 불가</p>\n<ul>\n<li>뷰로 구성된 내용에 대해 INSERT, DELETE, UPDATE 연산에 제약이 따름</li>\n</ul>\n</li>\n</ul>\n<h5>뷰 설계 순서</h5>\n<ul>\n<li>대상 테이블 선정 → 대상 칼럼 선정 → 정의서 작성</li>\n</ul>\n<h5>뷰 설계 시 고려사항</h5>\n<ul>\n<li>테이블 구조가 단순화될 수 있도록 반복적으로 조인을 설정하여 사용하거나 동일한 조건절을 사용하는 테이블을 뷰로 생성</li>\n<li>동일한 테이블이라도 업무에 따라 테이블을 이용하는 부분이 달라질 수 있으므로 사용할 데이터를 다양한 관점에서 제시</li>\n<li>데이터의 보안을 유지하며 설계</li>\n</ul>\n<h3 id=\"클러스터-설계\" style=\"position:relative;\"><a href=\"#%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-%EC%84%A4%EA%B3%84\" aria-label=\"클러스터 설계 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>클러스터 설계</h3>\n<hr>\n<h5>클러스터의 개요</h5>\n<ul>\n<li>데이터 저장 시 데이터 액세스 효율을 향상시키기 위해 동일한 성격의 데이터를 데이터 블록에 저장하는 물리적 저장 방법</li>\n<li>클러스터링키로 지정된 칼럼 값의 순서대로 저장되고 여러 개의 테이블이 하나의 클러스터에 저장</li>\n</ul>\n<h5>클러스터의 특징</h5>\n<ul>\n<li>데이터 조회 속도는 향상시키지만 데이터 입력 수정 삭제에 대한 성능은 저하시킴</li>\n<li>데이터의 분포도가 넓을수록 유리</li>\n<li>대용량을 처리하는 트랜잭션은 전체 테이블을 스캔하는 일이 자주 발생하므로 클러스터링을 지양</li>\n<li>파티셔닝 된 테이블에는 적용할 수 없음</li>\n</ul>\n<h5>클러스터 대상 테이블</h5>\n<ul>\n<li>분포도가 넓은 테이블</li>\n<li>대량의 범위를 자주 조회하는 테이블</li>\n<li>입력, 수정, 삭제가 자주 발생하지 않는 테이블</li>\n<li>자주 조인되어 사용되는 테이블</li>\n<li>\n<p>ORDER BY, GROUP BY, UNION이 빈번한 테이블</p>\n<ul>\n<li>ORDER BY : 특정 속성을 기준으로 정렬하여 검색</li>\n<li>GROUP BY : 특정 속성을 기준으로 그룹화하여 검색할 때 사용. 그룹 함수와 같이 사용</li>\n<li>UNION : 두 SELECT 문의 결과를 통합하고 중복된 행은 한 번만 출력</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"파티션-설계\" style=\"position:relative;\"><a href=\"#%ED%8C%8C%ED%8B%B0%EC%85%98-%EC%84%A4%EA%B3%84\" aria-label=\"파티션 설계 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>파티션 설계</h3>\n<hr>\n<h5>파티션의 개요</h5>\n<ul>\n<li>대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것</li>\n<li>대용량 DB의 경우 테이블들을 작은 단위로 나눠 분산시키면 성능 저하를 방지하고 데이터 관리가 용이함</li>\n<li>데이터 처리는 테이블 단위, 데이터 저장은 파티션 별로 수행</li>\n</ul>\n<h5>파티션의 장단점</h5>\n<ul>\n<li>\n<p>장점</p>\n<ul>\n<li>데이터 접근 시 액세스 범위를 줄여 쿼리 성능 향상</li>\n</ul>\n</li>\n<li>\n<p>데이터가 분산되어 저장되므로 디스크 성능 향상</p>\n<ul>\n<li>파티션별로 백업 및 복구를 수행하므로 속도 향상</li>\n</ul>\n</li>\n<li>\n<p>시스템 장애 시 데이터 손상 정도 최소화</p>\n<ul>\n<li>데이터 가용성 향상</li>\n</ul>\n</li>\n<li>파티션 단위로 입출력 분산</li>\n<li>\n<p>단점</p>\n<ul>\n<li>하나의 테이블을 세분화하여 관리하기 때문에 세심한 관리가 요구됨</li>\n</ul>\n</li>\n<li>\n<p>테이블 간 조인에 대한 비용이 증가</p>\n<ul>\n<li>용량이 작은 테이블에 파티셔닝을 수행하면 성능이 저하됨</li>\n</ul>\n</li>\n</ul>\n<h5>파티션의 종류</h5>\n<ul>\n<li>범위 분할 : 지정한 열의 값을 기준으로 분할</li>\n<li>해시 분할 : 해시 함수를 적용한 결과 값에 따라 데이터를 분할</li>\n<li>조합 분할 : 범위 분할로 분할한 다음 해시 함수를 적용하여 다시 분할</li>\n</ul>\n<h5>파티션 키 선정 시 고려사항</h5>\n<ul>\n<li>파티션 키는 테이블 접근 유형에 따라 파티셔닝이 이루어지도록 선정</li>\n<li>데이터 관리의 용이성을 위해 이력성 데이터는 파티션 생성 주기와 소멸 주기를 일치시켜야 함</li>\n<li>매일 생성되는 날짜 칼럼, 백업의 기준이 되는 날짜 칼럼, 파티션 간 이동이 없는 칼럼, I/O 병목을 줄일 수 있는 데이터 분포가 양호한 칼럼 등을 파티션 키로 선정</li>\n</ul>\n<h5>인덱스 파티션</h5>\n<ul>\n<li>파티션 된 테이블의 데이터를 관리하기 위해 인덱스를 나눈 것</li>\n<li>\n<p>파티션된 테이블의 종속 여부에 따른 구분</p>\n<ul>\n<li>Local Partitioned Index : 테이블 파티션, 인덱스 파티션이 1:1 대응(관리 용이)</li>\n</ul>\n</li>\n<li>Global Partitioned Index : 테이블 파티션, 인덱스 파티션이 독립적</li>\n<li>\n<p>인덱스 파티션 키 칼럼의 위치에 따른 구분</p>\n<ul>\n<li>Prefixed Partitioned Index : 인덱스 파티션 키와 인덱스 첫 번째 칼럼이 같음</li>\n</ul>\n</li>\n<li>Non-Prefixed Partitioned Index : 인덱스 파티션키와 인덱스 첫 번째 칼럼이 다름</li>\n</ul>\n<h3 id=\"데이터베이스-용량-설계\" style=\"position:relative;\"><a href=\"#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%9A%A9%EB%9F%89-%EC%84%A4%EA%B3%84\" aria-label=\"데이터베이스 용량 설계 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>데이터베이스 용량 설계</h3>\n<hr>\n<h5>데이터베이스 용량 설계</h5>\n<ul>\n<li>데이터가 테이블에 저장될 공간을 정의</li>\n<li>테이블에 저장할 데이터양, 인덱스, 클러스터 등이 차지하는 공간 등을 예측하여 반영</li>\n</ul>\n<h5>데이터베이스 용량 설계의 목적</h5>\n<ul>\n<li>디스크의 저장공간을 효과적으로 사용하고 확장성 및 가용성을 높임</li>\n<li>디스크의 입출력 부하를 분산시키고 채널의 병목현상 최소화</li>\n<li>디스크에 대한 입출력 경합이 최소화되도록 설계함으로써 데이터 접근성이 향상</li>\n<li>데이터베이스에 생성되는 오브젝트의 익스텐트 발생을 최소화하여 성능을 향상</li>\n<li>테이블과 인덱스에 적합한 저장 옵션을 지정</li>\n<li>\n<p>데이터 접근성을 향상시키는 설계 방법</p>\n<ul>\n<li>테이블의 테이블스페이스와 인덱스의 테이블스페이스를 분리하여 구성</li>\n</ul>\n</li>\n<li>\n<p>테이블스페이스와 임시 테이블스페이스를 분리하여 구성</p>\n<ul>\n<li>테이블을 마스터 테이블과 트랜잭션 테이블로 분류</li>\n</ul>\n</li>\n</ul>\n<h5>데이터베이스 용량 분석 절차</h5>\n<ul>\n<li>데이터 예상 건수, 로우 길이, 보존 기간, 증가율 등 기초 자료를 수집하여 용량 분석</li>\n<li>분석된 자료를 바탕으로 DBMS에 이용될 테이블, 인덱스 등 오브젝트별 용량을 산정</li>\n<li>테이블과 인덱스의 테이블스페이스 용량을 산정</li>\n<li>데이터베이스에 저장될 모든 데이터 용량과 데이터베이스 설치 및 관리를 위한 시스템 용량을 합해 디스크 용량 산정</li>\n</ul>\n<h3 id=\"분산-데이터베이스-설계\" style=\"position:relative;\"><a href=\"#%EB%B6%84%EC%82%B0-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%84%A4%EA%B3%84\" aria-label=\"분산 데이터베이스 설계 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>분산 데이터베이스 설계</h3>\n<hr>\n<h5>분산 데이터베이스 정의</h5>\n<ul>\n<li>논리적인 하나의 시스템이지만 물리적으로는 네트워크로 연결된 여러 개의 컴퓨터 사이트에 분산되어 있는 데이터베이스</li>\n<li>데이터베이스를 네트워크를 이용해 나눠놓음</li>\n</ul>\n<h5>분산 데이터베이스의 구성 요소</h5>\n<ul>\n<li>분산 처리기 : 지리적으로 분산되어 있는 컴퓨터 시스템</li>\n<li>분산 데이터베이스 : 지리적으로 분산되어 있는 데이터베이스</li>\n<li>통신 네트워크 : 분산 처리기들을 네트워크로 연결하여 하나의 시스템처럼 동작할 수 있도록 하는 통신 네트워크</li>\n</ul>\n<h5>분산 데이터베이스 설계 시 고려사항</h5>\n<ul>\n<li>작업 부하의 노드별 분산 정책</li>\n<li>지역의 자치성 보장 정책</li>\n<li>데이터의 일관성 정책</li>\n<li>사이트나 회선의 고장으로부터의 회복 기능</li>\n<li>통신 네트워크를 통한 원격 접속 기능</li>\n</ul>\n<h5>분산 데이터베이스의 목표</h5>\n<ul>\n<li>위치 투명성 : 접근하려는 데이터베이스의 실제 위치를 알 필요 없이 논리적인 명칭만으로 접근 가능</li>\n<li>중복 투명성 : 동일 데이터가 여러 곳에 중복되어 있어도 사용자는 하나의 데이터만 존재하는 것처럼 사용 가능</li>\n<li>병행 투명성 : 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않음</li>\n<li>장애 투명성 : 트랜잭션, DBMS, 네트워크, 컴퓨터 등 장애에도 트랜잭션을 정확하게 처리</li>\n<li>투명성 : 사실 존재 여부를 염두에 두지 않아도 되는 성질</li>\n</ul>\n<h5>분산 데이터베이스의 장점</h5>\n<ul>\n<li>\n<p>장점</p>\n<ul>\n<li>지역 자치성이 높음</li>\n<li>자료의 공유성 향상</li>\n<li>분산 제어 가능</li>\n<li>시스템 성능 향상</li>\n<li>중앙 컴퓨터의 장애가 전체 시스템에 영향을 끼치지 않음</li>\n<li>효용성과 융통성이 높음</li>\n<li>신뢰성 및 가용성이 좋음</li>\n<li>점진적 시스템 용량 확장 용이</li>\n</ul>\n</li>\n<li>\n<p>단점</p>\n<ul>\n<li>DBMS가 수행할 기능이 복잡</li>\n<li>DB 설계가 어려움</li>\n<li>소프트웨어 개발 비용 증가</li>\n<li>처리 비용 증가</li>\n<li>잠재적 오류 증가</li>\n</ul>\n</li>\n</ul>\n<h5>분산 데이터베이스 설계</h5>\n<ul>\n<li>애플리케이션이나 사용자가 분산되어 저장된 데이터에 접근하는 것이 목적</li>\n<li>전역 관계망을 논리적 측면에서 소규모 단위로 분할, 분할된 결과를 복수의 노드에 할당</li>\n<li>분산 설계 방법에는 테이블 위치 분산, 분할, 할당이 있음</li>\n</ul>\n<h5>테이블 위치 분산</h5>\n<ul>\n<li>데이터베이스의 테이블을 각기 다른 서버에 분산시켜 배치</li>\n<li>테이블의 구조를 변경시키지 않고 다른 데이터베이스의 테이블과 중복되지 않게 배치</li>\n</ul>\n<h5>분할</h5>\n<ul>\n<li>테이블의 데이터를 분할하여 분산</li>\n<li>\n<p>분할 규칙</p>\n<ul>\n<li>완전성 : 전체 데이터를 대상으로 분할해야 함</li>\n<li>재구성 : 분할된 데이터는 관계 연산을 활용하여 본래의 데이터로 재구성이 가능해야 함</li>\n<li>상호 중첩 배제 : 분할된 데이터는 서로 다른 분할의 항목에 속하지 않아야 함</li>\n</ul>\n</li>\n<li>\n<p>분할 방법</p>\n<ul>\n<li>수평 분할 : 행 단위로 분할</li>\n<li>수직 분할 : 속성 단위로 분할</li>\n</ul>\n</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/dpAf2F/btqCkRer3Xn/j1Wv8RzXPxT7vsVSZYvpeK/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<h5>할당</h5>\n<ul>\n<li>동일한 분할을 여러 개의 서버에 생성하는 분산 방법</li>\n<li>\n<p>비중복 할당 방식</p>\n<ul>\n<li>최적의 노드를 선택해서 분산 데이터베이스의 단일 노드에서만 분할이 존재</li>\n</ul>\n</li>\n<li>\n<p>중복 할당 방식</p>\n<ul>\n<li>동일한 테이블을 다른 서버에 복제하는 방식</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"데이터베이스-이중화--서버-클러스터링\" style=\"position:relative;\"><a href=\"#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%9D%B4%EC%A4%91%ED%99%94--%EC%84%9C%EB%B2%84-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0%EB%A7%81\" aria-label=\"데이터베이스 이중화  서버 클러스터링 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>데이터베이스 이중화 / 서버 클러스터링</h3>\n<hr>\n<h5>데이터베이스 이중화</h5>\n<ul>\n<li>시스템 오류로 인한 데이터베이스 서비스 중단이나 물리적 손상 발생 시 이를 복구하기 위해 동일한 데이터베이스를 복제하여 관리하는 것</li>\n<li>하나 이상의 데이터베이스가 항상 같은 상태를 유지</li>\n<li>데이터베이스가 문제가 생기면 즉시 해결 가능</li>\n<li>사용자가 작업을 수행하면 이중화 시스템에 연결된 다른 데이터베이스도 동일하게 적용</li>\n<li>애플리케이션을 여러 개의 데이터베이스로 분산시켜 처리해 데이터베이스의 부하를 감소</li>\n</ul>\n<h5>데이터베이스 이중화의 분류</h5>\n<ul>\n<li>내용 전달 방식에 따른 분류</li>\n<li>Eager 기법 : 트랜잭션 수행 중 데이터 변경 발생 시 이중화된 모든 데이터베이스에 즉시 전달하여 변경 내용이 즉시 적용</li>\n<li>Lazy 기법 : 트랜잭션 수행이 종료되면 변경 사실을 새로운 트랜잭션에 작성하여 각 데이터베이스에 전달하여 데이터베이스마다 새로운 트랜잭션이 수행되는 것으로 간주</li>\n</ul>\n<h5>데이터베이스 이중화 구성 방법</h5>\n<ul>\n<li>\n<p>활동-대기 방법</p>\n<ul>\n<li>한 DB가 서비스 시 다른 DB는 대기</li>\n<li>활성 DB에 장애 발생 시 대기 중이었던 DB가 모든 서비스를 대신 수행</li>\n<li>구성 방법 및 관리가 쉬워 많은 기업에서 사용</li>\n</ul>\n</li>\n<li>\n<p>활동-활동 방법</p>\n<ul>\n<li>두 개의 DB가 서로 다른 서비스를 제공</li>\n</ul>\n</li>\n<li>\n<p>한쪽 DB에 장애 발생 시 다른 DB가 서비스를 제공</p>\n<ul>\n<li>두 DB가 모두 처리를 해 처리율이 높지만 구성 방법 및 설정이 복잡</li>\n</ul>\n</li>\n</ul>\n<h5>클러스터링</h5>\n<ul>\n<li>두 대 이상의 서버를 하나의 서버처럼 운영하는 기술</li>\n<li>\n<p>서버 이중화 및 공유 스트로지를 사용하여 서버의 고가용성을 제공</p>\n<ul>\n<li>고가용성 : 시스템을 오랜 시간 동안 계속해서 정상적으로 운영이 가능한 성질</li>\n</ul>\n</li>\n<li>병렬 처리 클러스터링 : 처리율을 높이기 위해 하나의 작업을 여러 개의 서버에서 분산하여 처리</li>\n<li>고가용성 클러스터링 : 하나의 서버에 장애가 발생 시 다른 서버가 받아서 처리하여 서비스 중단을 방지하는 방식</li>\n</ul>\n<h3 id=\"데이터베이스-보안--암호화\" style=\"position:relative;\"><a href=\"#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EB%B3%B4%EC%95%88--%EC%95%94%ED%98%B8%ED%99%94\" aria-label=\"데이터베이스 보안  암호화 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>데이터베이스 보안 / 암호화</h3>\n<hr>\n<p>데이터베이스의 일부분 또는 전체에 권한이 없는 사용자가 액세스 하는 것을 금지하기 위해 사용</p>\n<h5>암호화 / 복호화</h5>\n<ul>\n<li>암호화는 데이터를 보낼 때 송신자가 지정한 수신자 외는 그 내용을 알 수 없도록 평문을 암호문으로 변환</li>\n<li>암호화 과정 : 암호화되지 않은 평문을 정보 보호를 위해 암호문으로 바꿈</li>\n<li>복호화 과정 : 암호문을 원래의 평문으로 바꿈</li>\n</ul>\n<h5>개인키 / 공개키 암호 방식</h5>\n<ul>\n<li>\n<p>암호화 방식의 키와 복호화 방식의 키가 같을 때</p>\n<ul>\n<li>개인키 / 비밀키 / 대칭키 암호 방식</li>\n<li>종류 : 전위 기법, 대수 기법, 합성 기법(DES)</li>\n</ul>\n</li>\n<li>\n<p>암호화 방식의 키와 복호화 방식의 키가 다를 때</p>\n<ul>\n<li>공개키 / 비대칭키</li>\n</ul>\n</li>\n<li>RSA 기법</li>\n</ul>\n<h3 id=\"데이터베이스-보안---접근통제\" style=\"position:relative;\"><a href=\"#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EB%B3%B4%EC%95%88---%EC%A0%91%EA%B7%BC%ED%86%B5%EC%A0%9C\" aria-label=\"데이터베이스 보안   접근통제 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>데이터베이스 보안 - 접근통제</h3>\n<hr>\n<h5>접근통제</h5>\n<ul>\n<li>데이터가 저장된 객체와 사용하려는 주체 사이의 정보 흐름을 제한</li>\n<li>데이터에 대해 통제를 함으로써 자원의 불법적인 접근 및 파괴를 예방</li>\n<li>\n<p>임의 접근통제(Discretionary Access Control)</p>\n<ul>\n<li>데이터에 접근하는 사용자의 신원에 따라 접근 권한 부여</li>\n<li>통제 권한이 주체에 있어 접근통제 권한을 주체가 지정하고 제어</li>\n<li>객체를 생성한 사용자가 객체에 대한 모든 권한을 부여받고 다른 사용자에게 허가 가능</li>\n<li>SQL 명령어로는 GRANT, REVOKE가 있음</li>\n</ul>\n</li>\n<li>\n<p>강제 접근통제(Mandatory Access Control)</p>\n<ul>\n<li>주체와 객체의 등급을 비교하여 접근 권한을 부여</li>\n<li>제 3자가 접근통제 권한 지정</li>\n<li>객체별로 보안 등급을 부여할 수 있으며 사용자별로 인가 등급을 부여할 수 있음</li>\n<li>주체의 보안 등급이 자신의 보안등급보다 높으면 읽기, 수정, 등록이 모두 불가하고 동등하면 읽기, 수정, 등록이 모두 가능하며 낮으면 읽기만 가능</li>\n</ul>\n</li>\n</ul>\n<h5>접근통제 정책</h5>\n<ul>\n<li>어떤 주체(Who)가 언제(When) 어디서(Where) 어떤 객체(What)에게 어떤 행위(How)에 대한 허용 여부를 정의하는 것</li>\n<li>\n<p>신분 기반 정책</p>\n<ul>\n<li>주체나 그룹의 신분에 근거하여 객체의 접근을 제한</li>\n<li>IBP(Individual-Based Policy) : 최소 권한 정책, 단일 주체에게 하나의 객체에 대한 허가를 부여</li>\n<li>GBP(Group-Based Policy) : 복수 주체에 대한 허가를 부여</li>\n</ul>\n</li>\n<li>\n<p>규칙 기반 정책</p>\n<ul>\n<li>주체가 갖는 권한에 근거하여 객체의 접근을 제한</li>\n<li>MLP(Multi-Level Policy) : 사용자 및 객체별로 지정된 기밀 분류에 따른 정책</li>\n<li>CBP(Compartment-Based Policy) : 집단별로 지정된 기밀 허가에 따른 정책</li>\n</ul>\n</li>\n<li>\n<p>역할 기반 정책</p>\n<ul>\n<li>주체의 신분이 아니라 주체가 맡은 역할에 근거하여 객체의 접근을 제한</li>\n</ul>\n</li>\n</ul>\n<h5>접근통제 매커니즘</h5>\n<ul>\n<li>정의된 접근통제 정책을 구현하는 기술적인 방법</li>\n<li>접근통제 목록 : 객체를 기준으로 특정 객체에 대해 어떤 주체가 어떤 행위를 할 수 있는지 기록한 목록</li>\n<li>능력 리스트 : 주체를 기준으로 주체에게 허가된 자원 및 권한을 기록한 목록</li>\n<li>보안 등급 : 주체나 객체에 부여된 보안 속성의 집합</li>\n<li>패스워드 : 주체가 자신임을 증명할 때 사용하는 인증 방법</li>\n<li>\n<p>암호화 / 복호화</p>\n<ul>\n<li>암호화는 데이터를 보낼 때 송신자가 지정한 수신자 외는 그 내용을 알 수 없도록 평문을 암호문으로 변환</li>\n<li>암호화 과정 : 암호화되지 않은 평문을 정보 보호를 위해 암호문으로 바꿈</li>\n<li>복호화 과정 : 암호문을 원래의 평문으로 바꿈</li>\n</ul>\n</li>\n</ul>\n<h5>접근통제 보안 모델</h5>\n<ul>\n<li>보안 정책을 구현하기 위한 정형화된 모델</li>\n<li>\n<p>기밀성 모델</p>\n<ul>\n<li>군사적인 목적으로 개발된 최초의 수학적 모델로 기밀성 보장이 최우선</li>\n</ul>\n</li>\n<li>\n<p>무결성 모델</p>\n<ul>\n<li>기밀성 모델에서 발생하는 불법적인 정보 변경을 방지하기 위해 무결성을 기반으로 개발된 모델</li>\n<li>데이터 일관성 유지에 중점을 두어 개발</li>\n</ul>\n</li>\n<li>\n<p>접근통제 모델</p>\n<ul>\n<li>접근통제 매커니즘을 보안 모델로 발전시킨 것</li>\n<li>접근통제 모델 : 임의적인 접근 통제를 관리하기 위한 모델로 행은 주체 열은 객체를 의미</li>\n<li>R : 읽기 권한</li>\n<li>W : 쓰기 권한</li>\n<li>ALL : 모든 권한</li>\n</ul>\n</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/rta76/btqCl98Jb6d/5pgW3PFCpUnO7ngPQQotqK/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<h5>접근통제 조건</h5>\n<ul>\n<li>접근통제 매커니즘의 취약점을 보안하기 위해 접근 통제 정책에 부가하여 적용할 수 있는 조건</li>\n<li>값 종속 통제 : 객체에 저장된 값에 따라 다르게 접근통제를 허용해야 하는 경우</li>\n<li>다중 사용자 통제 : 지정된 객체에 다수의 사용자가 동시에 접근을 요구하는 경우</li>\n<li>콘텍스트 기반 통제 : 특정 시간, 네트워크 주소, 접근 경로, 인증 경로 등에 근거하여 접근을 제어하는 방식</li>\n</ul>\n<h5>감사 추적</h5>\n<ul>\n<li>사용자나 애플리케이션의 데이터베이스에 접근하여 수행한 모든 활동을 기록하는 기능</li>\n<li>오류가 발생한 데이터베이스를 복구하거나 부적절한 데이터 조작을 파악하기 위해 사용</li>\n</ul>\n<h3 id=\"데이터베이스-백업\" style=\"position:relative;\"><a href=\"#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EB%B0%B1%EC%97%85\" aria-label=\"데이터베이스 백업 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>데이터베이스 백업</h3>\n<hr>\n<p>전산 장비의 장애에 대비하여 데이터베이스에 저장된 데이터를 보호하고 복구하기 위한 작업</p>\n<h5>데이터베이스 장애 유형</h5>\n<ul>\n<li>사용자 실수 : 사용자의 실수로 인한 오류</li>\n<li>미디어 장애 : 하드웨어 장애나 데이터가 파손된 경우</li>\n<li>구문 장애 : 프로그램 오류나 사용 공간의 부족으로 발생하는 장애</li>\n<li>사용자 프로세스 장애 : 프로그램이 비정상적으로 종료되거나 네트워크 이상으로 세션이 종료되어 발생하는 장애</li>\n<li>인스턴스 장애 : 하드웨어 장애, 정전, 시스템 파일 파손 등 비정상적 요인으로 메모리나 데이터베이스 서버의 프로세스가 중단된 경우</li>\n</ul>\n<h5>로그 파일</h5>\n<ul>\n<li>데이터베이스의 처리 내용이나 이용 상황 등 상태 변화를 시간의 흐름에 따라 기록한 파일</li>\n<li>로그 파일을 기반으로 과거 상태로 복귀(UNDO)시키거나 현재 상태로 재생(REDO)시켜 데이터베이스 상태를 일관성 있게 유지</li>\n</ul>\n<h5>데이터베이스 복구 알고리즘</h5>\n<ul>\n<li>NO-UNDO/REDO : 비동기적으로 갱신한 경우</li>\n<li>UNDO/NO-REDO : 동기적으로 갱신한 경우</li>\n<li>UNDO/REDO : 동기/비동기적으로 갱신한 경우</li>\n<li>NO-UNDO/NO-REDO : 동기적으로 저장 매체에 기록하지만 데이터베이스와는 다른 영역에 기록한 경우</li>\n</ul>\n<h5>백업 종류</h5>\n<ul>\n<li>물리 백업 : 데이터베이스 파일을 백업하는 방법</li>\n<li>논리 백업 : 데이터베이스 내의 논리적 객체들을 백업하는 방법</li>\n</ul>\n<h3 id=\"\" style=\"position:relative;\"><a href=\"#\" aria-label=\" permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h3>\n<h3 id=\"스토리지\" style=\"position:relative;\"><a href=\"#%EC%8A%A4%ED%86%A0%EB%A6%AC%EC%A7%80\" aria-label=\"스토리지 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>스토리지</h3>\n<hr>\n<p>단일 디스크로 처리할 수 없는 대용량의 데이터를 저장하기 위해 서버와 저장장치를 연결하는 기술\\</p>\n<h5>DAS(Direct Attached Storage)</h5>\n<ul>\n<li>서버와 저장장치를 전용 케이블로 직접 연결하는 방식</li>\n<li>서버에서 저장장치를 관리</li>\n<li>저장장치를 직접 연결하므로 속도가 빠르고 설치 및 운영이 쉬움</li>\n<li>다른 서버에서 스토리지에 접근하여 사용 불가</li>\n</ul>\n<h5>NAS(Network Attacked Storage)</h5>\n<ul>\n<li>서버와 저장장치를 네트워크를 통해 연결하는 방식</li>\n<li>별도의 파일 관리 기능이 있는 NAS Storage가 내장된 저장장치를 직접 고나리</li>\n<li>DAS에 비해 확장성 및 유연성이 좋음</li>\n<li>서버들이 자유롭게 스토리지에 접근하여 파일 공유</li>\n</ul>\n<h5>SAN(Storage Area Network)</h5>\n<ul>\n<li>DAS의 빠른 처리와 NAS의 파일 공유 장점을 혼합한 방식</li>\n<li>서버와 저장장치를 연결하는 전용 네트워크를 별도로 구성</li>\n<li>\n<p>파이버 채널(FC) 스위치를 이용하여 네트워크를 구성</p>\n<ul>\n<li>파이버 채널 : 장치 간 데이터 전송 속도를 기가바이트로 높이기 위한 네트워크 기술</li>\n</ul>\n</li>\n<li>서버나 저장장치를 광케이블로 연결하므로 처리 속도가 빠름</li>\n<li>서버들이 저장장치 및 파일을 자유롭게 공유</li>\n</ul>\n<h3 id=\"논리-데이터-모델의-물리-데이터-모델-변환\" style=\"position:relative;\"><a href=\"#%EB%85%BC%EB%A6%AC-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AA%A8%EB%8D%B8%EC%9D%98-%EB%AC%BC%EB%A6%AC-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AA%A8%EB%8D%B8-%EB%B3%80%ED%99%98\" aria-label=\"논리 데이터 모델의 물리 데이터 모델 변환 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>논리 데이터 모델의 물리 데이터 모델 변환</h3>\n<hr>\n<h5>테이블</h5>\n<ul>\n<li>데이터를 저장하는 데이터베이스의 가장 기본적인 오브젝트</li>\n</ul>\n<h5>엔티티를 테이블로 변환</h5>\n<ul>\n<li>논리 데이터 모델에서 정의된 엔티티를 물리 데이터 모델의 테이블로 변환</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/bHJDlo/btqCsIhmXiL/S9aNrAuRpYwFdIgZo3KSQ1/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<ul>\n<li>테이블과 엔티티 명칭은 동일하게 하는 것을 권고</li>\n<li>테이블은 소스코드 가독성을 위해 영문명을 사용</li>\n<li>표준화된 용어 사용 지향</li>\n<li>변환 규칙</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/bX6D6R/btqCsGX1OZ5/K3mTePOnFtYhFUQeyENej1/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<h5>슈퍼타입/서브타입을 테이블로 변환</h5>\n<ul>\n<li>슈퍼타입과 서브타입은 논리 데이터 모델에서 이용되는 형태이므로 물리 데이터 모델을 설계할 때는 테이블로 변환</li>\n<li>\n<p>슈퍼타입 기준 테이블 변환</p>\n<ul>\n<li>서브타입을 슈퍼타입에 통합하여 하나의 테이블로 만듦</li>\n<li>데이터의 액세스가 상대적 용이</li>\n<li>뷰를 이용하여 각각의 서브타입만을 액세스 하거나 수정할 수 있음</li>\n<li>SQL 문장 구성이 단순</li>\n<li>디스크 저장 공간이 증가</li>\n<li>인덱스의 효율이 떨어짐</li>\n</ul>\n</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/dEeHfX/btqCl9HJa8H/NMRnXl9nkYjmwK5L9wsRxk/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<ul>\n<li>\n<p>서브타입 기준 테이블 변환</p>\n<ul>\n<li>슈퍼타입의 속성들을 각각의 서브타입에 추가하여 서브타입들을 개별적인 테이블로 만듦</li>\n<li>각 서브타입 속성들의 선택 사양이 명확한 경우 유리</li>\n<li>여러 개의 테이블로 통합하므로 테이블당 크기가 감소하여 전체 테이블 스캔 시 유리</li>\n<li>수행 속도 감사</li>\n<li>복잡한 처리를 하는 SQL의 통합이 어려움</li>\n</ul>\n</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/cJqLon/btqCl9npb67/qh16nLenZmr3gk9ywqXZik/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<ul>\n<li>\n<p>개별타입 기준 테이블 변환</p>\n<ul>\n<li>슈퍼타입과 서브타입들을 각각의 개별적인 테이블로 변환</li>\n<li>슈퍼타입과 서브타입 테이블 사이에는 각각 1:1 관계가 형성</li>\n<li>저장공간이 상대적으로 작음</li>\n</ul>\n</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/b75tUi/btqCl89RJdt/IPILGL0AvwjjlCr6Czshn0/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<h5>속성을 칼럼으로 변환</h5>\n<ul>\n<li>논리 데이터 모델에서 정의한 속성을 물리 데이터 모델의 컬럼으로 변환</li>\n<li>\n<p>일반 속성 변환</p>\n<ul>\n<li>엔티티의 속성을 테이블의 각각의 컬럼으로 변환</li>\n<li>칼럼명은 SQL 예약어 사용을 피하고 가능한 한 짧게 지정</li>\n</ul>\n</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/Lt7Wd/btqCtYK0MvF/XaKuZXtlbwgPL4an6TSi3K/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<h5>관계를 외래키로 변환</h5>\n<ul>\n<li>논리 데이터 모델에서 정의된 관계는 기본키와 이를 참조하는 기본키로 변환</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/cvyPeM/btqCsGqifKi/Y9y5nXQfuqycektaKKbkNk/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<h5>관리 목적의 테이블/칼럼 추가</h5>\n<ul>\n<li>논리 데이터 모델에는 존재하지 않는 테이블이나 칼럼을 데이터베이스 관리 혹은 이용하는 프로그래밍의 수행 속도를 향상시키기 위해 물리 데이터 모델에 추가할 수 있음</li>\n</ul>\n<h5>데이터 타입 선택</h5>\n<ul>\n<li>정의된 논리적인 데이터 타입을 물리적인 DBMS의 물리적 특성과 성능을 고려하여 최적의 데이터 타입과 데이터의 최대 길이를 선택</li>\n<li>\n<p>Oracle에서 자주 사용되는 데이터 유형</p>\n<ul>\n<li>CHAR : 고정길이 문자열</li>\n</ul>\n</li>\n<li>\n<p>VARCHAR : 가변 길이 문자열</p>\n<ul>\n<li>NUMBER : 38 자릿수의 숫자 저장 가능</li>\n</ul>\n</li>\n<li>DATE : 날짜 저장</li>\n</ul>\n<h1 id=\"3-sql-응용\" style=\"position:relative;\"><a href=\"#3-sql-%EC%9D%91%EC%9A%A9\" aria-label=\"3 sql 응용 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>3. SQL 응용</h1>\n<h3 id=\"sql-개념\" style=\"position:relative;\"><a href=\"#sql-%EA%B0%9C%EB%85%90\" aria-label=\"sql 개념 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>SQL 개념</h3>\n<hr>\n<p>국제 표준 데이터베이스 언어이며 많은 관계형 데이터베이스(RDB)를 지원하는 언어로 채택</p>\n<h5>SQL의 분류</h5>\n<ul>\n<li>\n<p>DDL(Data Define Language, 데이터 정의어): 스키마, 도메인, 테이블, 뷰, 인덱스를 정의, 변경, 삭제할 때 사용하는 언어</p>\n<p>CREATE : 스키마, 도메인, 테이블, 뷰, 인덱스를 정의</p>\n<p>ALTER : 테이블에 대한 정의를 변경</p>\n<p>DELETE : 스키마, 도메인, 테이블, 뷰, 인덱스를 삭제</p>\n</li>\n<li>\n<p>DML(Data Manipulation Language, 데이터 조작어) : 사용자가 저장된 데이터를 실질적으로 처리하는 데 사용</p>\n<p>SELECT : 테이블에서 조건에 맞는 튜플 검색</p>\n<p>INSERT : 테이블에 새로운 튜플 삽입</p>\n<p>DELETE : 테이블에서 조건에 맞는 튜플 삭제</p>\n<p>UPDATE : 테이블에서 조건에 맞는 튜플의 내용 변경</p>\n</li>\n<li>\n<p>DCL(Data Control Language, 데이터 제어어) : 데이터의 보안, 무결성, 회복, 병행 수행 제어 등을 정의하는 데 사용하는 언어</p>\n<p>COMMIT : 명령에 의해 수행된 결과를 실제 물리적 디스크로 저장하고 데이터베이스 조작 작업이 정상적으로 완료되었음을 알려줌</p>\n<p>ROLLBACK : 데이터베이스 조작 작업이 비정상적으로 종료되었을 때 원래의 상태로 복구</p>\n<p>GRANT : 데이터베이스 사용자에게 사용 권한을 부여</p>\n</li>\n</ul>\n<h3 id=\"ddl\" style=\"position:relative;\"><a href=\"#ddl\" aria-label=\"ddl permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>DDL</h3>\n<hr>\n<p>DDL(데이터 정의어)는 DB 구조, 데이터 형식, 접근 방식 등 DB를 구축하거나 수정할 목적으로 사용하는 언어</p>\n<h5>CREATE</h5>\n<ul>\n<li>CREATE SCHEM : 스키마(데이터베이스 구조와 제약 조건에 관한 전반적인 명세를 기술한 것)를 정의</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">CREATE SCHEMA 스키마명 AUTHORIZATION 사용자_id;</code></pre></div>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">CREATE SCHEMA 성적 AUTHORIZATION 김이박;\n소유권자의 사용자 ID가 &#39;김이박&#39;이고 스키마 &#39;성적&#39;을 정의하는 SQL문</code></pre></div>\n<ul>\n<li>CREATE DOMAIN : 도메인을 정의(대괄호는 생략 가능)</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">CREATE DOMAIN 도메인명 [AS] 데이터_타입\n\t[DEFAULT 기본값]\n\t[CONSTRAINT 제약조견명 CHECK (범위값)];</code></pre></div>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">CREATE DOMAIN [AS] CHAR(1)\n\tDEFAULT &#39;남&#39;\n    CONSTRAINT VALID-GENDER CHECK(VALUE IN(&#39;남&#39;,&#39;여&#39;);\n성별을 &#39;남&#39; 또는 &#39;여&#39;와 같이 정해진 1개 문자로 표현되는 도메인 GENDER를 정의하는 SQL문</code></pre></div>\n<ul>\n<li>CREATE TABLE : 테이블을 정의</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">CREATE TABLE 테이블명\n    (속성명 데이터_타입 [DEFAULT 기본값][NOT NULL], ...\n    [, PRIMARAY KEY(기본키_속성명), ...)]\n    [, UNIQUE(대체키_속성명), ...)]\n    [, FOREIGN KEY(외래키_속성명, ...)]\n    \tREFERENCES 참조테이블(기본키_속성명, ...)]\n        [ON DELETE 옵션]\n        [ON UPDATE 옵션]\n    [, CONSTRAINT 제약조건명][CHECK (조건식)]);</code></pre></div>\n<ul>\n<li>‘이름’, ‘학번’, ‘전공’, ‘성별’, ‘생년월일’로 구성된 학생 테이블을 정의하는 SQL문</li>\n<li>\n<p>제약조건</p>\n<ul>\n<li>‘이름’은 NULL 일 수 없음</li>\n<li>‘학번’은 기본키</li>\n<li>‘전공’은 학과 테이블의 ‘학과 코드’를 참조하는 외래키로 사용</li>\n<li>학과 테이블에서 삭제가 일어나면 관련된 튜플들의 전공 값을 NULL로 만듦</li>\n<li>학과 테이블에서 ‘학과 코드’가 변경되면 전공 값도 같은 값으로 변경</li>\n<li>‘생년월일’은 1980-01-01 이후의 데이터</li>\n<li>제약 조건의 이름은 ‘생년월일 제약’</li>\n<li>각 속성의 데이터 타입은 적당하게 지정</li>\n<li>‘성별’은 도메인 GENDER 사용</li>\n</ul>\n</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">CREATE TABLE 학생\n    (이름 VARCHAR(15) NOT NULL,\n    학번 CHAR(8)\n    전공 CHAR(5)\n    성별 GENDER\n    생년월일 DATE\n    PRIMARY KEY(학번)\n    FOREIGN KEY(전공) REFERENCES 학과(학과코드)\n    \tON DELETE SET NULL\n        ON UPDATE CASCADE\n    CONSTRAINT 생년월일제약 CHECK(생년월일*=&#39;1980-01-01&#39;));</code></pre></div>\n<ul>\n<li>\n<p>CREATE VIEW</p>\n<ul>\n<li>뷰(하나 이상의 기본 테이블로부터 유도되는 이름을 갖는 가상 테이블)를 정의</li>\n<li>SELECT문의 결과로써 뷰를 생성</li>\n</ul>\n</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">CREATE VIEW 뷰명[(속성명[, 속성명, ...])]\nAS SELECT문;</code></pre></div>\n<ul>\n<li>고객 테이블에서 ‘주소’가 ‘포천시’인 고객들의 ‘이름’과 ‘전화번호’를 ‘포천 고객’이라는 뷰로 정의하는 SQL문</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">CREATE VIEW 포천고객(이름, 전화번호)\nAS SELECT 이름,전화번호\nFROM 고객\nWHERE 주소 = &#39;포천시&#39;;</code></pre></div>\n<ul>\n<li>\n<p>CREATE INDEX</p>\n<ul>\n<li>인덱스(검색 시간을 단축시키기 위해 만든 보조적인 데이터 구조)를 정의</li>\n<li>ASC : 오름차순 정렬, 생략 시 기본 값 / DESC : 내림차순 정렬</li>\n<li>CLUSTER : 사용 시 인덱스를 클러스터드 인덱스로 지정</li>\n<li>클러스터드 인덱스 : 인덱스 키의 순서에 따라 데이터가 정렬되어 저장되는 방식</li>\n</ul>\n</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">CREATE [UNIQUE] INDEX 인덱스명\nON 테이블명(속성명 [ASC|DESC][,속성명 [ASC|DESC]])\n[CLUSTER];</code></pre></div>\n<ul>\n<li>고객 테이블에서 UNIQUE 한 특성을 갖는 ‘고객번호’속성에 대해 내림차순으로 정렬하여 ‘고객번호_idx’라는 이름으로 인덱스를 정의하는 SQL문</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">CREATE UNIQUE INDEX 고객번호_idx\nON 고객(고객번호 DESC);</code></pre></div>\n<h5>ALTER</h5>\n<ul>\n<li>\n<p>ALTER TABLE</p>\n<ul>\n<li>테이블에 대한 정의를 변경</li>\n</ul>\n</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">ALTER TABLE 테이블명 ADD 속성명 데이터_타입 [DEFAULT &#39;기본값&#39;];\nALTER TABLE 테이블명 ALTER 속성명 [SET DEFAULT &#39;기본값&#39;];\nALTER TABLE 테이블명 DROP COLUMN 속성명 [CASCADE];</code></pre></div>\n<ul>\n<li>학생 테이블에 최대 3 문자로 구성되는 ‘학년’ 속성을 추가하는 SQL문</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">ALTER TABLE 학생 ADD 학년 VARCHAR(3);</code></pre></div>\n<ul>\n<li>학생 테이블의 학년 필드의 데이터 타입과 크기를 최대 10글자로 하고 NULL값이 입력되지 않게 하는 SQL문</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">ALTER TABLE 학생 ALTER 학년 VARCHAR(10) NOT NULL;</code></pre></div>\n<h5>DROP</h5>\n<ul>\n<li>스키마, 도메인, 기본 테이블, 튜 테이블, 인덱스, 제약 조건 등을 제거하는 명령문</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">DROP SCHEMA 스키마명 [CASCADE | RESTRICTED];\nDROP DOMAIN 도메인명 [CASCADE | RESTRICTED];\nDROP TABLE 테이블명 [CASCADE | RESTRICTED];\nDROP VIEW 뷰명 [CASCADE | RESTRICTED];\nDROP INDEX 인덱스명 [CASCADE | RESTRICTED];\nDROP CONSTRAINT 제약조건명</code></pre></div>\n<ul>\n<li>CASCADE : 제거할 때 참조 관계에 있는 테이블의 데이터도 연쇄 삭제</li>\n<li>RESTRICTED : 제거할 때 참조하고 있는 테이블이 있다면 삭제를 취소</li>\n</ul>\n<h3 id=\"dcl\" style=\"position:relative;\"><a href=\"#dcl\" aria-label=\"dcl permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>DCL</h3>\n<hr>\n<p>DCL(데이터 제어어)는 데이터의 보안, 무결성, 회복, 병행 제어 등을 정의하는 데 사용하는 언어</p>\n<h5>GRANT</h5>\n<ul>\n<li>데이터베이스 관리자가 사용자에게 권한 부여</li>\n</ul>\n<h5>REVOKE</h5>\n<ul>\n<li>데이터베이스 관리자가 사용자에게 권한 취소</li>\n</ul>\n<h5>COMMIT</h5>\n<ul>\n<li>트랜잭션이 성공적으로 끝난 후 변경된 내용을 데이터베이스에 반영</li>\n</ul>\n<h5>ROLLBACK</h5>\n<ul>\n<li>COMMIT 되지 않은 변경된 내용을 취소하고 데이터베이스를 이전 상태로 되돌리는 명령</li>\n</ul>\n<h5>SAVEPOINT</h5>\n<ul>\n<li>트랜잭션 내에 ROLLBACK 할 위치인 저장점을 저장</li>\n</ul>\n<h3 id=\"dml\" style=\"position:relative;\"><a href=\"#dml\" aria-label=\"dml permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>DML</h3>\n<hr>\n<h5>DML의 개념</h5>\n<ul>\n<li>DML(데이터 조작어)는 데이터베이스 사용자가 응용 프로그램이나 질의어를 통해 저장된 데이터를 관리하는 데 사용하는 언어</li>\n</ul>\n<h5>INSERT</h5>\n<ul>\n<li>테이블에 새로운 튜플을 삽입</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">INSERT INTO 테이블명([속성명1, 속성명2, ...])\nVALUES (데이터1, 데이터2, ...)</code></pre></div>\n<ul>\n<li>사원 테이블에 (이름 - 김이박, 부서 - 개발)을 삽입하는 SQL문</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">INSERT INTO 사원(이름, 부서) VALUE(김이박, 개발);</code></pre></div>\n<ul>\n<li>사원 테이블에 있는 개발의 모든 튜플을 개발 부원(이름, 생일) 테이블에 삽입하는 SQL문</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">INSERT INTO 개발부원(이름, 주소)\nSELECT 이름, 주소\nFROM 사원\nWHERE 부서 = &quot;개발&quot;</code></pre></div>\n<h5>DELETE</h5>\n<ul>\n<li>테이블의 튜플 중 특정 튜플을 삭제</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">DELETE\nFROM 테이블명\n[WHERE 조건]</code></pre></div>\n<ul>\n<li>사원 테이블에서 부서가 개발인 튜플을 삭제하는 SQL문</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">DELETE FROM 사원 WHERE 부서 = &quot;개발&quot;;</code></pre></div>\n<h5>UPDATE</h5>\n<ul>\n<li>테이블의 튜플 중 특정 튜플의 내용을 변경</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">UPDATE 테이블명\nSET 속성명 = 데이터[, 속성명=데이터, ...]\n[WHERE 조건];</code></pre></div>\n<ul>\n<li>사원 테이블에서 김이박의 부서를 IT로 변경하는 SQL문</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">UPDATE 사원\nSET 부서 = &quot;IT&quot;\nWHERE 이름 = &quot;김이박&quot;;</code></pre></div>\n<h5>SELECT</h5>\n<ul>\n<li>테이블에서 튜플을 검색</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">SELECT [PREDICATE] [테이블명.]속성명 [AS 별칭][, [테이블명.]속성명, ...]\nFROM 테이블명[, 테이블명, ...]\n[, WINDOW 함수 OVER (PARTITION BY 속성명1, 속성명2, ... ORDER BY 속성명3, 속성명4, ...) [AS 별칭]]\n[WHERE 조건]\n[GROUP BY 속성명, 속섬영, ..]\n[HAVING 조건]\n[ORDER BY 속성명 [ASC | DESC]];</code></pre></div>\n<ul>\n<li>\n<p>ORDER BY : 특정 속성을 기준으로 정렬하여 검색</p>\n<p>ASC : 오름차순</p>\n<p>DESC : 내림차순</p>\n</li>\n<li>\n<p>WINDOW 함수 : GROUP BY 절을 이용하지 않고 속성의 값을 집계할 함수를 기술</p>\n<p>PARTITION BY : WINDOW 함수가 적용될 범위로 사용할 속성을 지정</p>\n<p>ORDER BY : PARTITION 안에서 정렬 기준으로 사용할 속성을 지정</p>\n<p>ROW_NUMBER() : 각 레코드에 대한 일련번호 반환</p>\n<p>RANK() : 순위를 반환하되 공동 순위를 반영</p>\n<p>DENSE_RANK() : 순위를 반환하되 공동 순위를 반영하지 않음</p>\n</li>\n<li>\n<p>GROUP BY : 특정 속성을 기준으로 그룹화하여 검색할 때 사용. 그룹 함수와 같이 사용</p>\n<p>COUNT(속성명) : 그룹별 튜플 수를 구하는 함수</p>\n<p>SUM(속성명) : 그룹별 합계를 구하는 함수</p>\n<p>AVG(속성명) : 그룹별 평균을 구하는 함수</p>\n<p>MAX(속성명) : 그룹별 최대값을 구하는 함수</p>\n<p>MIN(속성명) : 그룹별 최소값을 구하는 함수</p>\n<p>ROLLUP(속성명, 속성명, …) : 인수로 주어진 속성을 대상으로 그룹별 소계를 구하는 함수</p>\n<p>CUBE(속성명, 속성명, …) : 인수로 주어진 속성을 대상으로 모든 조합의 그룹별 소계를 구함</p>\n</li>\n<li>HAVING : GROUP BY와 함께 사용하여 그룹에 조건을 지정</li>\n</ul>\n<h5>SELECT 예제</h5>\n<p><img src=\"https://k.kakaocdn.net/dn/1E1NK/btqCcBRRfmo/XD0DZV4tJEJVgBy8ACxF8K/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<ul>\n<li>기본 검색 : 사원 테이블에 있는 모든 튜플을 검색하는 SQL문</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">SELETE * FROM 사원;</code></pre></div>\n<p><img src=\"https://k.kakaocdn.net/dn/bLSbZ6/btqCcVvR4ry/7HeIVmgUxEjkvy9I92v481/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">SELECT DISTINCT 부서 FROM 사원;\n사원 테이블에서 부서를 중복없이 검색하는 SQL문</code></pre></div>\n<p><img src=\"https://k.kakaocdn.net/dn/bG0ynK/btqCcCiZufW/JqyR0s4W9K7jAZgrGjeTY1/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<ul>\n<li>조건 지정 검색</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">SELECT * FROM 사원 WHERE 부서 = &quot;개발&quot;;\n사원 테이블에서 부서가 개발인 튜플을 검색하는 SQL문</code></pre></div>\n<p><img src=\"https://k.kakaocdn.net/dn/PsTAx/btqCevJZ4p1/UYkBUTlWWRAfIIflVRg8Sk/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">SELECT * FROM 사원 WHERE 부서 = &quot;개발&quot; OR 부서 = &quot;IT&quot;;\nSELECT * FROM 사원 WHERE 부서 IN(&quot;개발&quot;,&quot;IT&quot;);\n사원 테이블에서 부서가 개발 혹은 IT인 튜플을 검색하는 SQL문</code></pre></div>\n<p><img src=\"https://k.kakaocdn.net/dn/bS079d/btqCcBYKMA5/8Ze1MmcXQhKKuriZYoZEQ0/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">SELECT * FROM 사원 WHERE 이름 LIKE &quot;김%&quot;;\n사원 테이블에서 성이 김인 튜플을 검색하는 SQL문</code></pre></div>\n<p><img src=\"https://k.kakaocdn.net/dn/rpbge/btqCcUX4XdU/zswQIP3KHbcQRADBUknxh0/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">SELECT * FROM 사원 WHERE 부서 IS NULL;\n사원 테이블에서 부서가 NULL인 튜플을 검색하는 SQL문</code></pre></div>\n<p><img src=\"https://k.kakaocdn.net/dn/nvIyD/btqCgRewrdi/1v1qHuykYWhEdS6qFePH8K/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<ul>\n<li>정렬 검색 : ORDER BY를 이용한 검색</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">SELECT * FROM 사원 ORDER BY 이름 ASC;\n사원 테이블에서 이름을 오름차순으로 정렬하여 튜플을 검색하는 SQL문</code></pre></div>\n<p><img src=\"https://k.kakaocdn.net/dn/dKNwfJ/btqCdh6xBN4/qXJDsvkvp8Y1GGNSL5adkk/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<ul>\n<li>하위 질의 : 조건절에 다시 SELECT문을 넣어 그 결과를 조건으로 검색</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">SELECT 이름 FROM 사원 WHERE 이름 = (SELECT 이름 FROM 취미 WHERE 취미활동 = &quot;축구&quot;);\n취미 테이블에서 취미활동이 축구인 사원 이름의 튜플을 검색하는 SQL문</code></pre></div>\n<p><img src=\"https://k.kakaocdn.net/dn/cfdW9Y/btqCe30MC0G/M6mKZ1nqvCpNUVV4wAqP20/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<ul>\n<li>복수 테이블 : 여러 테이블을 대상으로 검색</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">SELECT 사원.이름, 사원.부서\nFROM 사원, 취미\nWHERE 사원.경력 *= 10 AND 사원.이름 = 취미.이름;\n경력이 10년 이상인 사원의 이름, 부서, 취미활동을 검색하는 SQL문</code></pre></div>\n<p><img src=\"https://k.kakaocdn.net/dn/boWh8o/btqCd1CnEgM/w0pfFPJl0A8aGqhIzJKjdK/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<h5>SELECT 예제 2</h5>\n<p><img src=\"https://k.kakaocdn.net/dn/wHR7r/btqCeuEhuZz/XFRpIe2TAvBXfbgBLYiix1/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<ul>\n<li>WINDOW 함수 이용</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">SELECT 부서, 경력\n    ROW_NUMBER() OVER (PARTITION BY 부서 ORDER BY 경력 DESC) AS 짬순\nFROM 사원;\n사원 테이블에서 부서 별로 경력에 대한 일련번호를 구하여 짬순이라는 이름을 붙이는 SQL문</code></pre></div>\n<p><img src=\"https://k.kakaocdn.net/dn/bDzv2a/btqCgnSemIS/z1qFgOzdE1fkMpcwgsuSkK/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<ul>\n<li>GROUP BY : 그룹 지정 검색</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">SELECT 부서, AVG(경력) AS 평균\nFROM 사원\nGROUP BY 부서;\n사원 테이블에서 부서별 경력의 평균을 구하는 SQL문</code></pre></div>\n<p><img src=\"https://k.kakaocdn.net/dn/cKHnAP/btqCgSqWxVR/FykcN2yB4opD46BsQ0Bk41/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<ul>\n<li>집합 연산자를 이용한 통합 질의</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">SELECT 속성명1, 속성명2, ...\nFROM 테이블명\nUNION | UNION ALL | INTERSECT | EXCEPT\nSELECT 속성명1, 속성명2, ...\nFROM 테이블명\n[ORDER BY 속성명 [ASC | DESC]];</code></pre></div>\n<ul>\n<li>UNION : 두 SELECT 문의 결과를 통합하고 중복된 행은 한 번만 출력</li>\n<li>UNION ALL : 두 SELECT 문의 결과를 통합하고 중복된 행도 그대로 출력</li>\n<li>INTERSECT : 두 SELECT 문의 결과 중 공통된 행만 출력</li>\n<li>EXCEPT : 첫번째 SELECT 문의 결과에서 두 번째 SELECT 문의 결과를 제외한 행을 출력</li>\n</ul>\n<h1 id=\"4-sql-활용\" style=\"position:relative;\"><a href=\"#4-sql-%ED%99%9C%EC%9A%A9\" aria-label=\"4 sql 활용 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>4. SQL 활용</h1>\n<h3 id=\"프로시저\" style=\"position:relative;\"><a href=\"#%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80\" aria-label=\"프로시저 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>프로시저</h3>\n<hr>\n<h5>프로시저의 개요</h5>\n<ul>\n<li>절차형 SQL을 활용하여 특정 기능을 수행하는 일종의 트랜잭션 언어</li>\n<li>호출을 통해 실행되어 미리 저장해놓은 SQL 작업 수행</li>\n<li>여러 프로그램에서 호출하여 사용 가능</li>\n<li>데이터베이스에 저장되어 수행되기 때문에 스토어드 프로시저라고도 함</li>\n<li>시스템의 일일 마감 작업, 일괄 작업 등에 사용</li>\n</ul>\n<h5>프로시저의 구성</h5>\n<p><img src=\"https://k.kakaocdn.net/dn/b3mXZa/btqCsHcsZK3/cYrQt6mv8KyuAEz9ayide0/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<ul>\n<li>DECLARE : 프로시저의 명칭, 변수, 인수, 데이터 타입을 정의하는 선언부</li>\n<li>BEGIN / END : 프로시저의 시작과 종료를 의미</li>\n<li>CONTROL : 조건문 또는 반복문이 삽입되어 순차적으로 처리</li>\n<li>SQL : DML, DCL이 삽입되어 데이터 관리를 위한 작업(조회, 추가, 수정, 삭제) 수행</li>\n<li>EXCPETION : BEGIN ~ END 안의 구문 실행 시 예외 처리</li>\n<li>TRANSACTION : 수행된 데이터 작업들을 DB에 저장할지 취소할지 결정</li>\n</ul>\n<h5>프로시저 생성</h5>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">CREATE [OR REPLACE] PROCEDURE 프로시저명(파라미터)\n[지역번수 선언]\nBEGIN\n    프로시저 BODY;\nEND;</code></pre></div>\n<ul>\n<li>OR REPLACE : 동일한 프로시저 이름이 이미 존재하는 경우 기존의 프로시저를 대체</li>\n<li>\n<p>파라미터</p>\n<ul>\n<li>IN : 호출 프로그램이 프로시저에게 값을 전달할 때 사용</li>\n<li>OUT : 프로시저가 호출 프로그램에게 값을 전달할 때 사용</li>\n<li>INOUT : 호출 프로그램이 프로시저에게 값을 전달하고, 프로시저 실행 후 호출 프로그램에게 값을 반환할 때 지정</li>\n<li>매개변수명 : 호출 프로그램으로부터 전달받은 값을 저장할 변수의 이름을 지정</li>\n<li>자료형 : 변수의 자료형을 지정</li>\n</ul>\n</li>\n<li>\n<p>프로시저 BODY</p>\n<ul>\n<li>프로시저의 코드를 기록</li>\n<li>BEGIN과 END 사이에 적어도 하나의 SQL 문이 존재해야 함</li>\n</ul>\n</li>\n<li>사원번호를 입력받아 해당 사원의 지급방식을 S로 변경하는 프로시저</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">CREATE OR REPLACE PROCEDURE emp_change_s(i_사원번호 IN INT)\nIS\nBEGIN\n    UPDATE 급여 SET 지급방식 = &#39;S&#39; WHERE 사원번호 = i_사원번호;\n    EXCEPTION\n        WHEN PROGRAM_ERROR THEN\n            ROLLBACK;\n    COMMIT;\nEND;</code></pre></div>\n<h5>프로시저 실행</h5>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">EXECUTE 프로시저명;\nEXEC 프로시저명;\nCALL 프로시저명;</code></pre></div>\n<ul>\n<li>위 3가지 명령어 중 하나를 사용</li>\n<li>위에 정의한 emp<em>change</em>s 프로시저를 사원번호 32를 인수로 하여 실행</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">EXECUTE emp_change_s(32);\nEXEC emp_change_s(32);\nCALL emp_change_s(32);</code></pre></div>\n<h5>프로시저 제거</h5>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">DROP PROCEDURE 프로시저명;</code></pre></div>\n<ul>\n<li>위에 정의한 emp<em>change</em>s 프로시저를 제거</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">DROP PROCEDURE emp_change_s;</code></pre></div>\n<h3 id=\"트리거\" style=\"position:relative;\"><a href=\"#%ED%8A%B8%EB%A6%AC%EA%B1%B0\" aria-label=\"트리거 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>트리거</h3>\n<hr>\n<h5>트리거의 개요</h5>\n<ul>\n<li>데이터베이스 시스템에서 데이터의 삽입 갱신 삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL</li>\n<li>데이터베이스에 저장</li>\n<li>데이터 변경 및 무결성 유지 로그 메시지 출력 등의 목적으로 사용</li>\n<li>DCL을 사용할 수 없으며, DCL이 포함된 프로시저나 함수를 호출하는 경우에도 오류 발생</li>\n<li>트리거에 오류가 있는 경우 트리거가 처리하는 데이터에도 영향을 미침</li>\n</ul>\n<h5>트리거의 구성</h5>\n<p><img src=\"https://k.kakaocdn.net/dn/b1SOap/btqCtYSzWrt/IAtZiJtHTnx6QE4kcQwQhk/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<ul>\n<li>DECLARE : 트리거의 명칭, 변수 및 상수, 데이터 타입을 정의</li>\n<li>EVENT : 트리거가 실행되는 조건</li>\n<li>BEGIN / END : 트리거의 시작과 끝</li>\n<li>CONTROL : 조건문 또는 반복문이 삽입되어 순차적으로 처리</li>\n<li>SQL : DML문이 삽입되어 데이터 관리를 위한 작업(조회, 추가, 수정, 삭제) 수행</li>\n<li>EXCEPTION : BEGIN ~ END 안의 구문에서 예외가 발생 시 처리</li>\n</ul>\n<h5>트리거의 생성</h5>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">CREATE [OR REPLACE] TRIGGER 트리거명 [동작시기 옵션][동작 옵션] ON 테이블명\nREFERENCING [NEW | OLD] AS 테이블명\nFOR EACH ROW\n[WHEN 조건식]\nBEGIN\n    트리거 BODY;\nEND;</code></pre></div>\n<ul>\n<li>\n<p>동작 시기 옵션 : 트리거가 실행될 때를 지정</p>\n<ul>\n<li>AFTER : 테이블이 변경된 후</li>\n<li>BEFORE : 테이블이 변경되기 전</li>\n</ul>\n</li>\n<li>\n<p>동작 옵션 : 트리거가 실행되게 할 작업의 종류를 지정</p>\n<ul>\n<li>INSERT : 새로운 튜플을 삽입할 때</li>\n<li>DELETE : 튜플을 삭제할 때</li>\n<li>UPDATE : 튜플을 수정할 때</li>\n</ul>\n</li>\n<li>\n<p>NEW | OLD : 트리거가 적용될 테이블의 별칭을 지정</p>\n<ul>\n<li>NEW : 추가되거나 수정에 참여할 튜플들의 집합(테이블)을 의미</li>\n<li>OLD : 수정되거나 삭제 전 대상이 되는 튜플들의 집합(테이블)을 의미</li>\n</ul>\n</li>\n<li>FOR EACH ROW : 각 튜플마다 트리거를 적용한다는 의미</li>\n<li>WHEN 조건식 : 트리거를 적용할 튜플의 조건을 지정</li>\n<li>학생 테이블에 새로운 튜플이 삽입될 때 튜플에 학년 정보가 누락되었으면 학년 필드에 신입생을 치환하는 트리거를 학년 정보_tri라는 이름으로 정의</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">CREATE TRIGGER 학생정보_tri BEFORE INSERT ON 학생\nREFERENCING NEW AS new_table\nFOR EACH ROW\nWHEN (new_table.학년 IS NULL)\nBEGIN\n    :new_table.학년 := &#39;신입생&#39;;\nEND;</code></pre></div>\n<h5>트리거의 제거</h5>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">DROP TRIGGER 트리거명;</code></pre></div>\n<ul>\n<li>위에 정의한 학생정보_tri를 제거</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">DROP TRIGGER 학생정보_tri;</code></pre></div>\n<h3 id=\"사용자-정의-함수\" style=\"position:relative;\"><a href=\"#%EC%82%AC%EC%9A%A9%EC%9E%90-%EC%A0%95%EC%9D%98-%ED%95%A8%EC%88%98\" aria-label=\"사용자 정의 함수 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>사용자 정의 함수</h3>\n<hr>\n<h5>사용자 정의 함수의 개요</h5>\n<ul>\n<li>프로시저와 유사하게 SQL을 사용하여 일련의 작업을 연속적으로 처리하여 종료 시 처리 결과를 단일 값으로 반환하는 절차형 SQL</li>\n<li>데이터베이스에 저장되어 DML문의 호출에 의해 실행</li>\n<li>예약어 RETURN을 통해 값이 반환되기 때문에 출력 파라미터가 없음</li>\n<li>테이블 조작은 할 수 없고 SELECT를 통해 검색만 할 수 있음</li>\n<li>프로시저를 호출하여 사용할 수 없음</li>\n</ul>\n<h5>사용자 정의 함수의 구성</h5>\n<p><img src=\"https://k.kakaocdn.net/dn/PrIeI/btqCrPWdc3a/2xNz3k7BOigKWrbya5UeH1/img.png\" alt=\"img\" style=\"zoom:50%;\">*</p>\n<ul>\n<li>프로시저의 구성과 유사</li>\n<li>RETURN : 호출 프로그램에 반환할 값이나 변수를 정의</li>\n</ul>\n<h5>사용자 정의 함수 생성</h5>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">CREATE [OR REPLACE] FUNCTION 사용자 정의 함수명(파라미터)\n[지역변수 선언]\nBEGIN\n    사용자 정의 함수 BODY;\n    RETURN 반환;\nEND;</code></pre></div>\n<ul>\n<li>프로시저와 유사하며 파라미터에의 구성요소는 IN, 매개변수명, 자료형이 있음</li>\n<li>RETURN 반환값 : 반환할 값이나 반환할 값이 저장된 변수를 호출 프로그램으로 돌려줌</li>\n<li>i<em>성별코드를 입력받아 1이면 남자, 2면 여자를 반환하는 사용자 정의 함수를 Get_S</em>성별로 정의</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">CREATE FUNCTION Get_S_성별(i_성별코드 IN INT)\nRETURN VARCHAR2\nIS\nBEGIN\n    IF (i_성별코드 = 1) THEN\n        RETURN &#39;남자&#39;;\n    ELSE\n        RETURN &#39;여자&#39;;\n    END IF;\nEND;</code></pre></div>\n<h5>사용자 정의 함수 실행</h5>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">SELECT 사용자 정의 함수명 FROM 테이블명;\nINSERT INTO 테이블명(속성명) VALUES (사용자 정의 함수명);\nDELETE FROM 테이블명 WHERE 속성명 = 사용자 정의 함수명;\nUPDATE 테이블명 SET 속성명 = 사용자 정의 함수명;</code></pre></div>\n<h5>사용자 정의 함수 제거</h5>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">DROP FUNCTION 사용자 정의 함수명;</code></pre></div>\n<ul>\n<li>위에 정의한 Get<em>S</em>성별을 제거</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">DROP FUNCTION Get_S_성별;</code></pre></div>\n<h3 id=\"dbms-접속-기술\" style=\"position:relative;\"><a href=\"#dbms-%EC%A0%91%EC%86%8D-%EA%B8%B0%EC%88%A0\" aria-label=\"dbms 접속 기술 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>DBMS 접속 기술</h3>\n<hr>\n<h5>DBMS 접속 기술의 개요</h5>\n<ul>\n<li>사용자가 데이터를 접속하기 위해 응용 시스템을 이용하여 DBMS에 접근하는 것</li>\n<li>응용 시스템은 사용자로부터 매개 변수를 전달받아 SQL을 실행하고 DBMS로부터 전달받은 결과를 사용자에게 전달</li>\n<li>웹 응용프로그램은 웹 응용 시스템을 통해 DBMS에 접근</li>\n<li>\n<p>웹 응용 시스템은 웹 서버와 웹 애플리케이션 서버(WAS)로 구성</p>\n<ul>\n<li>사용자 ↔ 웹 서버 ↔ WAS ↔ DBMS</li>\n</ul>\n</li>\n</ul>\n<h5>DBMS 접속 기술</h5>\n<ul>\n<li>\n<p>DBMS에 접근하기 위해 사용하는 API 또는 프레임워크를 의미</p>\n<ul>\n<li>API(Application Programming Interface) : 응용 프로그램 개발 시 운영 체제나 DBMS 등을 이용할 수 있도록 규칙 등에 대해 정의해 놓은 인터페이스</li>\n<li>프레임워크 : 소프트웨어에서는 특정 기능을 수행하기 위해 필요한 클래스나 인터페이스 등을 모아둔 집합체</li>\n</ul>\n</li>\n<li>\n<p>JDBC(Java DataBase Connectivity)</p>\n<ul>\n<li>Java 언어</li>\n</ul>\n</li>\n<li>\n<p>썬 마이크로시스템에서 출시</p>\n<ul>\n<li>Java SE에 포함되어 있고 JDBC 클래스는 java.sql, javax.sql에 포함</li>\n</ul>\n</li>\n<li>접속하려는 DBMS에 대한 드라이버 필요</li>\n<li>\n<p>ODBC(Open DataBase Connectivity)</p>\n<ul>\n<li>개발 언어와 상관 없음</li>\n</ul>\n</li>\n<li>\n<p>마이크로소프트에서 출시</p>\n<ul>\n<li>MS-Access, DBase, DB2, Excel, Text 등 다양한 데이터베이스에 접근 가능</li>\n</ul>\n</li>\n<li>\n<p>MyBatis</p>\n<ul>\n<li>JDBC 코드를 단순화하여 사용할 수 있는 SQL Mapping 기반 오픈소스 접속 프레임워크</li>\n</ul>\n</li>\n<li>\n<p>SQL 문장을 분리하여 XML 파일을 만들고 Mapping을 통해 SQL을 실행</p>\n<ul>\n<li>SQL을 거의 그대로 사용할 수 있어 국내 환경에 적합</li>\n</ul>\n</li>\n</ul>\n<h5>동적 SQL</h5>\n<ul>\n<li>개발 언어에 삽입되는 SQL 코드를 문자열 변수에 넣어 처리하는 것</li>\n<li>조건에 따라 SQL 구문을 동적으로 변경하여 처리 가능</li>\n<li>NVL 함수를 사용할 필요가 없음</li>\n<li>응용 프로그램 수행 시 SQL이 변형될 수 있어 프리컴파일할 때 구문 분석, 접근 권한 확인 등을 할 수 없음</li>\n</ul>\n<h3 id=\"sql-테스트\" style=\"position:relative;\"><a href=\"#sql-%ED%85%8C%EC%8A%A4%ED%8A%B8\" aria-label=\"sql 테스트 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>SQL 테스트</h3>\n<hr>\n<h5>SQL 테스트의 개요</h5>\n<ul>\n<li>SQL이 작성 의도에 맞게 원하는 기능을 수행하는지 검증하는 과정</li>\n<li>단문 SQL은 코드를 직접 실행한 후 결과를 확인</li>\n<li>절차형 SQL은 테스트 전에 생성을 통해 구문 오류나 참조 오류의 존재 여부 확인</li>\n<li>정상적으로 생성된 절차형 SQL은 디버깅을 통해 로직을 검증하고 결과를 통해 최종 확인</li>\n</ul>\n<h5>단문 SQL 테스트</h5>\n<ul>\n<li>DDL, DML, DCL이 포함되어 있는 SQL과 TCL을 직접 실행하여 테스트</li>\n<li>DESCRIBE 명령어를 이용하면 DDL로 작성된 테이블이나 뷰의 속성, 자료형, 옵션들을 확인할 수 있음</li>\n<li>DCL로 설정된 사용자 권한은 사용자 권한 정보가 저장된 테이블을 SELECT문으로 조회하거나 SHOW 명령어로 확인할 수 있음</li>\n<li>Oracle : SELECT * FROM DBA<em>ROLE</em>PRIVES WHERE GRANTEE = 사용자;</li>\n<li>MySQL : SHOW GRANTS FOR 사용자@호스트;</li>\n</ul>\n<h5>절차형 SQL 테스트</h5>\n<ul>\n<li>프로시저, 사용자 정의 함수, 트리거 등의 절차형 SQL은 디버깅을 통해 기능의 적합성 여부 검증, 실행을 통해 결과를 확인하는 테스트를 수행</li>\n<li>\n<p>SHOW 명령어를 통해 오류 내용을 확인</p>\n<ul>\n<li>SHOW ERRORS;</li>\n</ul>\n</li>\n<li>\n<p>데이터베이스에 변화를 줄 수 있는 SQL문은 주석 처리 후 출력문을 이용하여 결과 확인</p>\n<ul>\n<li>Oracle : DBMS<em>OUTPUT.ENABLE; / DBMS</em>OUTPUT.PUT_LINE(데이터);</li>\n</ul>\n</li>\n<li>MySQL : SELECT 데이터</li>\n</ul>\n<h3 id=\"orm\" style=\"position:relative;\"><a href=\"#orm\" aria-label=\"orm permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>ORM</h3>\n<hr>\n<h5>ORM(Object-Relational Mapping)의 개요</h5>\n<ul>\n<li>객체지향 프로그래밍의 객체와 관계형 데이터베이스의 데이터를 연결하는 기술</li>\n<li>객체지향 프로그래밍에서 사용할 수 있는 가상의 객체지향 데이터베이스를 만들어 프로그래밍 코드와 데이터 연결</li>\n<li>프로그래밍 코드 또는 데이터베이스와 독립적이므로 재사용 및 유지보수가 용이</li>\n<li>SQL 코드를 직접 사용하지 않기 때문에 직관적이고 간단하게 데이터 조작 가능</li>\n</ul>\n<h5>ORM 프레임워크</h5>\n<ul>\n<li>ORM을 구현하기 위한 구조와 구현을 위해 필요한 여러 기능들을 제공하는 소프트웨어</li>\n<li>JAVA : JPA, Hibernate, EclipseLink, DataNucleus, Ebean 등</li>\n<li>C++ : ODB, QxOrm 등</li>\n<li>Python : Django, SQLAlchemy, Storm 등</li>\n<li>iOS : DatabaseObjects, Core Data 등</li>\n<li>.NET : NHibernate, DatabaseObjects, Dapper 등</li>\n<li>PHP : Doctrine, Propel, RedBean 등</li>\n</ul>\n<h5>ORM의 한계</h5>\n<ul>\n<li>프레임워크가 자동으로 작성하기 때문에 의도대로 작성되었는지 확인할 필요가 있음</li>\n<li>객체지향적 사용을 고려, 설계한 데이터베이스가 아닌 경우 프로젝트가 크고 복잡할수록 ORM 기술을 적용하기 어려움</li>\n<li>기존의 기업들은 ORM 고려하지 않은 데이터베이스를 사용하고 있어 ORM에 적합하게 변환하려면 많은 시간과 노력이 필요</li>\n</ul>\n<h3 id=\"쿼리-성능-최적화\" style=\"position:relative;\"><a href=\"#%EC%BF%BC%EB%A6%AC-%EC%84%B1%EB%8A%A5-%EC%B5%9C%EC%A0%81%ED%99%94\" aria-label=\"쿼리 성능 최적화 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>쿼리 성능 최적화</h3>\n<hr>\n<h5>쿼리 성능 최적화의 개요</h5>\n<ul>\n<li>데이터 입출력 애플리케이션의 성능 향상을 위해 SQL 코드를 최적화</li>\n<li>\n<p>최적화 전 APM을 사용하여 최적화할 쿼리 선정</p>\n<ul>\n<li>APM(Application Performance Management/Monitoring) : 애플리케이션의 성능 관리를 위해 다양한 모니터링 기능을 제공하는 도구</li>\n</ul>\n</li>\n<li>RBO(Rule Based Optimizer) : 규칙 기반 옵티마이저</li>\n<li>CBO(Cost Based Optimizer) : 비용 기반 옵티마이저</li>\n</ul>\n<p><img src=\"https://k.kakaocdn.net/dn/ckjOUW/btqCqMyPjBa/QrzfQlGSkvijENlO8ZQzZ1/img.png\" alt=\"img\" style=\"zoom: 80%;\">*</p>\n<h5>실행 계획</h5>\n<ul>\n<li>DBMS의 옵티마이저가 수립한 SQL 코드의 실행 절차와 방법을 의미</li>\n<li>EXPLAIN 명령어를 통해 확인</li>\n<li>그래픽이나 텍스트로 표현</li>\n<li>요구사항을 처리하기 위한 연산 순서가 적혀있고 연산에는 조인, 테이블 검색, 필터, 정렬 등이 있음</li>\n</ul>\n<h5>쿼리 성능 최적화</h5>\n<ul>\n<li>실행 계획에 표시된 연산 순서, 조인 방식, 테이블 조회 방법 등을 참고하여 SQL문이 더 빠르고 효율적으로 작동하도록 코드와 인덱스를 재구성</li>\n<li>\n<p>SQL 코드 재구성</p>\n<ul>\n<li>WHERE 절을 추가하여 일부 레코드만 조회</li>\n<li>WHERE 절에 연산자 사용 자제</li>\n<li>특정 데이터 확인 시 IN보다 EXISTS 사용</li>\n<li>힌트를 활용하여 실행 계획의 액세스 경로 및 조인 순서 변경</li>\n</ul>\n</li>\n<li>\n<p>인덱스 재구성</p>\n<ul>\n<li>SQL 코드에서 조회되는 속성과 조건들을 고려하여 인덱스 구성</li>\n<li>인덱스를 추가하거나 기존 인덱스의 열 순서 변경</li>\n<li>단일 인덱스로 쓰기나 수정 없이 읽기로만 사용되는 경우 IOT(Index-Organized Table)로 구성</li>\n</ul>\n</li>\n</ul>","tableOfContents":"<ul>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#1-%EB%85%BC%EB%A6%AC-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%84%A4%EA%B3%84\">1. 논리 데이터베이스 설계</a></p>\n<ul>\n<li>\n<ul>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%84%A4%EA%B3%84\">데이터베이스 설계</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%84%A4%EA%B3%84-%EC%88%9C%EC%84%9C%EC%9A%94%EA%B5%AC-%EC%A1%B0%EA%B1%B4--%EA%B0%9C%EB%85%90%EC%A0%81-%EB%85%BC%EB%A6%AC%EC%A0%81-%EB%AC%BC%EB%A6%AC%EC%A0%81-%EA%B5%AC%ED%98%84\">데이터베이스 설계 순서(요구 조건 , 개념적, 논리적, 물리적, 구현)</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%84%A4%EA%B3%84-%EC%8B%9C-%EA%B3%A0%EB%A0%A4%EC%82%AC%ED%95%AD\">데이터베이스 설계 시 고려사항</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AA%A8%EB%8D%B8%EC%9D%98-%EA%B0%9C%EB%85%90\">데이터 모델의 개념</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AA%A8%EB%8D%B8%EC%9D%98-%EA%B5%AC%EC%84%B1-%EC%9A%94%EC%86%8C\">데이터 모델의 구성 요소</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AA%A8%EB%8D%B8%EC%9D%98-%EC%A2%85%EB%A5%98\">데이터 모델의 종류</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AA%A8%EB%8D%B8%EC%97%90-%ED%91%9C%EC%8B%9C%ED%95%A0-%EC%9A%94%EC%86%8C%EA%B5%AC%EC%A1%B0-%EC%97%B0%EC%82%B0-%EC%A0%9C%EC%95%BD-%EC%A1%B0%EA%B1%B4\">데이터 모델에 표시할 요소(구조, 연산, 제약 조건)</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AA%A8%EB%8D%B8%EC%9D%98-%EA%B5%AC%EC%84%B1-%EC%9A%94%EC%86%8C---%EA%B0%9C%EC%B2%B4-%EC%86%8D%EC%84%B1-%EA%B4%80%EA%B3%84\">데이터 모델의 구성 요소 - 개체, 속성, 관계</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EA%B0%9C%EC%B2%B4%EC%9D%98-%ED%8A%B9%EC%A7%95\">개체의 특징</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%86%8D%EC%84%B1%EC%9D%98-%EC%A0%95%EC%9D%98\">속성의 정의</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%86%8D%EC%84%B1%EC%9D%98-%ED%8A%B9%EC%A7%95\">속성의 특징</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%86%8D%EC%84%B1%EC%9D%98-%EC%A2%85%EB%A5%98\">속성의 종류</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%86%8D%EC%84%B1%EC%9D%98-%EB%B6%84%EB%A5%98\">속성의 분류</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EA%B4%80%EA%B3%84%EC%9D%98-%EC%A0%95%EC%9D%98\">관계의 정의</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EA%B4%80%EA%B3%84%EC%9D%98-%ED%98%95%ED%83%9C\">관계의 형태</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%8B%9D%EB%B3%84--%EB%B9%84%EC%8B%9D%EB%B3%84-%EA%B4%80%EA%B3%84\">식별 / 비식별 관계</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%8B%9D%EB%B3%84%EC%9E%90\">식별자</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%8B%9D%EB%B3%84%EC%9E%90%EC%9D%98-%EB%B6%84%EB%A5%98\">식별자의 분류</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#e-r%EA%B0%9C%EC%B2%B4-%EA%B4%80%EA%B3%84-%EB%AA%A8%EB%8D%B8\">E-R(개체-관계) 모델</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#e-r-%EB%AA%A8%EB%8D%B8%EC%9D%98-%EA%B0%9C%EC%9A%94\">E-R 모델의 개요</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#e-r-%EB%8B%A4%EC%9D%B4%EC%96%B4%EA%B7%B8%EB%9E%A8\">E-R 다이어그램</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%94%BC%ED%84%B0-%EC%B2%B8-%ED%91%9C%EA%B8%B0%EB%B2%95\">피터 첸 표기법</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%A0%95%EB%B3%B4-%EA%B3%B5%ED%95%99-%ED%91%9C%EA%B8%B0%EB%B2%95\">정보 공학 표기법</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EA%B4%80%EA%B3%84%ED%98%95-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%9D%98-%EA%B5%AC%EC%A1%B0\">관계형 데이터베이스의 구조</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EA%B4%80%EA%B3%84%ED%98%95-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%9D%98-%EA%B5%AC%EC%A1%B0-1\">관계형 데이터베이스의 구조</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%A6%B4%EB%A0%88%EC%9D%B4%EC%85%98%EC%9D%98-%ED%8A%B9%EC%A7%95\">릴레이션의 특징</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EA%B4%80%EA%B3%84%ED%98%95-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%9D%98-%EC%A0%9C%EC%95%BD-%EC%A1%B0%EA%B1%B4---key\">관계형 데이터베이스의 제약 조건 - Key</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#key%EC%9D%98-%EC%A2%85%EB%A5%98\">Key의 종류</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EA%B4%80%EA%B3%84%ED%98%95-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%9D%98-%EC%A0%9C%EC%95%BD%EC%A1%B0%EA%B1%B4---%EB%AC%B4%EA%B2%B0%EC%84%B1\">관계형 데이터베이스의 제약조건 - 무결성</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%AC%B4%EA%B2%B0%EC%84%B1%EC%9D%98-%EC%A2%85%EB%A5%98\">무결성의 종류</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%AC%B4%EA%B2%B0%EC%84%B1-%EA%B0%95%ED%99%94\">무결성 강화</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EA%B4%80%EA%B3%84-%EB%8C%80%EC%88%98-%EB%B0%8F-%EA%B4%80%EA%B3%84-%ED%95%B4%EC%84%9D\">관계 대수 및 관계 해석</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EA%B4%80%EA%B3%84-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%96%B8%EC%96%B4\">관계 데이터 언어</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EA%B4%80%EA%B3%84-%EB%8C%80%EC%88%98%EC%9D%98-%EC%97%B0%EC%82%B0%EC%9E%90\">관계 대수의 연산자</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%A0%95%EA%B7%9C%ED%99%94normalization\">정규화(Normalization)</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%A0%95%EA%B7%9C%ED%99%94%EC%9D%98-%EB%AA%A9%EC%A0%81\">정규화의 목적</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%9D%B4%EC%83%81anomaly\">이상(Anomaly)</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%A0%95%EA%B7%9C%ED%99%94-%EA%B3%BC%EC%A0%95\">정규화 과정</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%B0%98%EC%A0%95%EA%B7%9C%ED%99%94denormalization\">반정규화(Denormalization)</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%B0%98%EC%A0%95%EA%B7%9C%ED%99%94%EC%9D%98-%EC%A2%85%EB%A5%98\">반정규화의 종류</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%8B%9C%EC%8A%A4%ED%85%9C-%EC%B9%B4%ED%83%88%EB%A1%9C%EA%B7%B8\">시스템 카탈로그</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%8B%9C%EC%8A%A4%ED%85%9C-%EC%B9%B4%ED%83%88%EB%A1%9C%EA%B7%B8%EC%9D%98-%EC%9D%98%EB%AF%B8\">시스템 카탈로그의 의미</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%8B%9C%EC%8A%A4%ED%85%9C-%EC%B9%B4%ED%83%88%EB%A1%9C%EA%B7%B8-%EC%A0%80%EC%9E%A5-%EC%A0%95%EB%B3%B4\">시스템 카탈로그 저장 정보</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%8B%9C%EC%8A%A4%ED%85%9C-%EC%B9%B4%ED%83%88%EB%A1%9C%EA%B7%B8%EC%9D%98-%ED%8A%B9%EC%A7%95\">시스템 카탈로그의 특징</a></li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#2-%EB%AC%BC%EB%A6%AC-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%84%A4%EA%B3%84\">2. 물리 데이터베이스 설계</a></p>\n<ul>\n<li>\n<ul>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%82%AC%EC%A0%84-%EC%A1%B0%EC%82%AC-%EB%B6%84%EC%84%9D\">사전 조사 분석</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%AC%BC%EB%A6%AC-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%84%A4%EA%B3%84\">물리 데이터베이스 설계</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AA%85%EB%AA%85-%EA%B7%9C%EC%B9%99-%ED%8C%8C%EC%95%85\">데이터 명명 규칙 파악</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%8B%9C%EC%8A%A4%ED%85%9C-%EC%9E%90%EC%9B%90-%ED%8C%8C%EC%95%85\">시스템 자원 파악</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EA%B4%80%EB%A6%AC-%EC%9A%94%EC%86%8C-%ED%8C%8C%EC%95%85\">데이터베이스 관리 요소 파악</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%A0%80%EC%9E%A5-%EA%B3%B5%EA%B0%84-%EC%84%A4%EA%B3%84\">데이터베이스 저장 공간 설계</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%85%8C%EC%9D%B4%EB%B8%94\">테이블</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%9D%BC%EB%B0%98-%ED%85%8C%EC%9D%B4%EB%B8%94\">일반 테이블</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0%EB%93%9C-%EC%9D%B8%EB%8D%B1%EC%8A%A4-%ED%85%8C%EC%9D%B4%EB%B8%94\">클러스터드 인덱스 테이블</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%8C%8C%ED%8B%B0%EC%85%94%EB%8B%9D-%ED%85%8C%EC%9D%B4%EB%B8%94\">파티셔닝 테이블</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%99%B8%EB%B6%80-%ED%85%8C%EC%9D%B4%EB%B8%94\">외부 테이블</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%9E%84%EC%8B%9C-%ED%85%8C%EC%9D%B4%EB%B8%94\">임시 테이블</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%B9%BC%EB%9F%BC\">칼럼</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%85%8C%EC%9D%B4%EB%B8%94%EC%8A%A4%ED%8E%98%EC%9D%B4%EC%8A%A4\">테이블스페이스</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98-%EB%B0%8F-crud-%EB%B6%84%EC%84%9D\">트랜잭션 및 CRUD 분석</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98%EC%9D%98-%ED%8A%B9%EC%84%B1\">트랜잭션의 특성</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#crud-%EB%B6%84%EC%84%9D\">CRUD 분석</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#crud-%EB%A7%A4%ED%8A%B8%EB%A6%AD%EC%8A%A4\">CRUD 매트릭스</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98-%EB%B6%84%EC%84%9D\">트랜잭션 분석</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98-%EB%B6%84%EC%84%9D%EC%84%9C\">트랜잭션 분석서</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%9D%B8%EB%8D%B1%EC%8A%A4-%EC%84%A4%EA%B3%84\">인덱스 설계</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%9D%B8%EB%8D%B1%EC%8A%A4%EC%9D%98-%EA%B0%9C%EB%85%90\">인덱스의 개념</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%8A%B8%EB%A6%AC-%EA%B8%B0%EB%B0%98-%EC%9D%B8%EB%8D%B1%EC%8A%A4\">트리 기반 인덱스</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%B9%84%ED%8A%B8%EB%A7%B5-%EC%9D%B8%EB%8D%B1%EC%8A%A4\">비트맵 인덱스</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%95%A8%EC%88%98-%EA%B8%B0%EB%B0%98-%EC%9D%B8%EB%8D%B1%EC%8A%A4\">함수 기반 인덱스</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%B9%84%ED%8A%B8%EB%A7%B5-%EC%A1%B0%EC%9D%B8-%EC%9D%B8%EB%8D%B1%EC%8A%A4\">비트맵 조인 인덱스</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8F%84%EB%A9%94%EC%9D%B8-%EC%9D%B8%EB%8D%B1%EC%8A%A4\">도메인 인덱스</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%9D%B8%EB%8D%B1%EC%8A%A4-%EC%84%A4%EA%B3%84-%EC%88%9C%EC%84%9C\">인덱스 설계 순서</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%9D%B8%EB%8D%B1%EC%8A%A4-%ED%85%8C%EC%9D%B4%EB%B8%94-%EC%84%A0%EC%A0%95-%EA%B8%B0%EC%A4%80\">인덱스 테이블 선정 기준</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%9D%B8%EB%8D%B1%EC%8A%A4-%EC%84%A4%EA%B3%84-%EC%8B%9C-%EA%B3%A0%EB%A0%A4%EC%82%AC%ED%95%AD\">인덱스 설계 시 고려사항</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%B7%B0-%EC%84%A4%EA%B3%84\">뷰 설계</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%B7%B0%EC%9D%98-%EA%B0%9C%EC%9A%94\">뷰의 개요</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%B7%B0%EC%9D%98-%ED%8A%B9%EC%A7%95\">뷰의 특징</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%B7%B0%EC%9D%98-%EC%9E%A5%EB%8B%A8%EC%A0%90\">뷰의 장단점</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%B7%B0-%EC%84%A4%EA%B3%84-%EC%88%9C%EC%84%9C\">뷰 설계 순서</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%B7%B0-%EC%84%A4%EA%B3%84-%EC%8B%9C-%EA%B3%A0%EB%A0%A4%EC%82%AC%ED%95%AD\">뷰 설계 시 고려사항</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-%EC%84%A4%EA%B3%84\">클러스터 설계</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0%EC%9D%98-%EA%B0%9C%EC%9A%94\">클러스터의 개요</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0%EC%9D%98-%ED%8A%B9%EC%A7%95\">클러스터의 특징</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-%EB%8C%80%EC%83%81-%ED%85%8C%EC%9D%B4%EB%B8%94\">클러스터 대상 테이블</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%8C%8C%ED%8B%B0%EC%85%98-%EC%84%A4%EA%B3%84\">파티션 설계</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%8C%8C%ED%8B%B0%EC%85%98%EC%9D%98-%EA%B0%9C%EC%9A%94\">파티션의 개요</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%8C%8C%ED%8B%B0%EC%85%98%EC%9D%98-%EC%9E%A5%EB%8B%A8%EC%A0%90\">파티션의 장단점</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%8C%8C%ED%8B%B0%EC%85%98%EC%9D%98-%EC%A2%85%EB%A5%98\">파티션의 종류</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%8C%8C%ED%8B%B0%EC%85%98-%ED%82%A4-%EC%84%A0%EC%A0%95-%EC%8B%9C-%EA%B3%A0%EB%A0%A4%EC%82%AC%ED%95%AD\">파티션 키 선정 시 고려사항</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%9D%B8%EB%8D%B1%EC%8A%A4-%ED%8C%8C%ED%8B%B0%EC%85%98\">인덱스 파티션</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%9A%A9%EB%9F%89-%EC%84%A4%EA%B3%84\">데이터베이스 용량 설계</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%9A%A9%EB%9F%89-%EC%84%A4%EA%B3%84-1\">데이터베이스 용량 설계</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%9A%A9%EB%9F%89-%EC%84%A4%EA%B3%84%EC%9D%98-%EB%AA%A9%EC%A0%81\">데이터베이스 용량 설계의 목적</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%9A%A9%EB%9F%89-%EB%B6%84%EC%84%9D-%EC%A0%88%EC%B0%A8\">데이터베이스 용량 분석 절차</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%B6%84%EC%82%B0-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%84%A4%EA%B3%84\">분산 데이터베이스 설계</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%B6%84%EC%82%B0-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%A0%95%EC%9D%98\">분산 데이터베이스 정의</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%B6%84%EC%82%B0-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%9D%98-%EA%B5%AC%EC%84%B1-%EC%9A%94%EC%86%8C\">분산 데이터베이스의 구성 요소</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%B6%84%EC%82%B0-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%84%A4%EA%B3%84-%EC%8B%9C-%EA%B3%A0%EB%A0%A4%EC%82%AC%ED%95%AD\">분산 데이터베이스 설계 시 고려사항</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%B6%84%EC%82%B0-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%9D%98-%EB%AA%A9%ED%91%9C\">분산 데이터베이스의 목표</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%B6%84%EC%82%B0-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%9D%98-%EC%9E%A5%EC%A0%90\">분산 데이터베이스의 장점</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%B6%84%EC%82%B0-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%84%A4%EA%B3%84-1\">분산 데이터베이스 설계</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%85%8C%EC%9D%B4%EB%B8%94-%EC%9C%84%EC%B9%98-%EB%B6%84%EC%82%B0\">테이블 위치 분산</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%B6%84%ED%95%A0\">분할</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%95%A0%EB%8B%B9\">할당</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%9D%B4%EC%A4%91%ED%99%94--%EC%84%9C%EB%B2%84-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0%EB%A7%81\">데이터베이스 이중화 / 서버 클러스터링</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%9D%B4%EC%A4%91%ED%99%94\">데이터베이스 이중화</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%9D%B4%EC%A4%91%ED%99%94%EC%9D%98-%EB%B6%84%EB%A5%98\">데이터베이스 이중화의 분류</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%9D%B4%EC%A4%91%ED%99%94-%EA%B5%AC%EC%84%B1-%EB%B0%A9%EB%B2%95\">데이터베이스 이중화 구성 방법</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0%EB%A7%81\">클러스터링</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EB%B3%B4%EC%95%88--%EC%95%94%ED%98%B8%ED%99%94\">데이터베이스 보안 / 암호화</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%95%94%ED%98%B8%ED%99%94--%EB%B3%B5%ED%98%B8%ED%99%94\">암호화 / 복호화</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EA%B0%9C%EC%9D%B8%ED%82%A4--%EA%B3%B5%EA%B0%9C%ED%82%A4-%EC%95%94%ED%98%B8-%EB%B0%A9%EC%8B%9D\">개인키 / 공개키 암호 방식</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EB%B3%B4%EC%95%88---%EC%A0%91%EA%B7%BC%ED%86%B5%EC%A0%9C\">데이터베이스 보안 - 접근통제</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%A0%91%EA%B7%BC%ED%86%B5%EC%A0%9C\">접근통제</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%A0%91%EA%B7%BC%ED%86%B5%EC%A0%9C-%EC%A0%95%EC%B1%85\">접근통제 정책</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%A0%91%EA%B7%BC%ED%86%B5%EC%A0%9C-%EB%A7%A4%EC%BB%A4%EB%8B%88%EC%A6%98\">접근통제 매커니즘</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%A0%91%EA%B7%BC%ED%86%B5%EC%A0%9C-%EB%B3%B4%EC%95%88-%EB%AA%A8%EB%8D%B8\">접근통제 보안 모델</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%A0%91%EA%B7%BC%ED%86%B5%EC%A0%9C-%EC%A1%B0%EA%B1%B4\">접근통제 조건</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EA%B0%90%EC%82%AC-%EC%B6%94%EC%A0%81\">감사 추적</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EB%B0%B1%EC%97%85\">데이터베이스 백업</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%9E%A5%EC%95%A0-%EC%9C%A0%ED%98%95\">데이터베이스 장애 유형</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%A1%9C%EA%B7%B8-%ED%8C%8C%EC%9D%BC\">로그 파일</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EB%B3%B5%EA%B5%AC-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98\">데이터베이스 복구 알고리즘</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%B0%B1%EC%97%85-%EC%A2%85%EB%A5%98\">백업 종류</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%8A%A4%ED%86%A0%EB%A6%AC%EC%A7%80\">스토리지</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#dasdirect-attached-storage\">DAS(Direct Attached Storage)</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#nasnetwork-attacked-storage\">NAS(Network Attacked Storage)</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#sanstorage-area-network\">SAN(Storage Area Network)</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%85%BC%EB%A6%AC-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AA%A8%EB%8D%B8%EC%9D%98-%EB%AC%BC%EB%A6%AC-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AA%A8%EB%8D%B8-%EB%B3%80%ED%99%98\">논리 데이터 모델의 물리 데이터 모델 변환</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%85%8C%EC%9D%B4%EB%B8%94-1\">테이블</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%97%94%ED%8B%B0%ED%8B%B0%EB%A5%BC-%ED%85%8C%EC%9D%B4%EB%B8%94%EB%A1%9C-%EB%B3%80%ED%99%98\">엔티티를 테이블로 변환</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%8A%88%ED%8D%BC%ED%83%80%EC%9E%85%EC%84%9C%EB%B8%8C%ED%83%80%EC%9E%85%EC%9D%84-%ED%85%8C%EC%9D%B4%EB%B8%94%EB%A1%9C-%EB%B3%80%ED%99%98\">슈퍼타입/서브타입을 테이블로 변환</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%86%8D%EC%84%B1%EC%9D%84-%EC%B9%BC%EB%9F%BC%EC%9C%BC%EB%A1%9C-%EB%B3%80%ED%99%98\">속성을 칼럼으로 변환</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EA%B4%80%EA%B3%84%EB%A5%BC-%EC%99%B8%EB%9E%98%ED%82%A4%EB%A1%9C-%EB%B3%80%ED%99%98\">관계를 외래키로 변환</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EA%B4%80%EB%A6%AC-%EB%AA%A9%EC%A0%81%EC%9D%98-%ED%85%8C%EC%9D%B4%EB%B8%94%EC%B9%BC%EB%9F%BC-%EC%B6%94%EA%B0%80\">관리 목적의 테이블/칼럼 추가</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%83%80%EC%9E%85-%EC%84%A0%ED%83%9D\">데이터 타입 선택</a></li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#3-sql-%EC%9D%91%EC%9A%A9\">3. SQL 응용</a></p>\n<ul>\n<li>\n<ul>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#sql-%EA%B0%9C%EB%85%90\">SQL 개념</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#sql%EC%9D%98-%EB%B6%84%EB%A5%98\">SQL의 분류</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#ddl\">DDL</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#create\">CREATE</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#alter\">ALTER</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#drop\">DROP</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#dcl\">DCL</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#grant\">GRANT</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#revoke\">REVOKE</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#commit\">COMMIT</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#rollback\">ROLLBACK</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#savepoint\">SAVEPOINT</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#dml\">DML</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#dml%EC%9D%98-%EA%B0%9C%EB%85%90\">DML의 개념</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#insert\">INSERT</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#delete\">DELETE</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#update\">UPDATE</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#select\">SELECT</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#select-%EC%98%88%EC%A0%9C\">SELECT 예제</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#select-%EC%98%88%EC%A0%9C-2\">SELECT 예제 2</a></li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#4-sql-%ED%99%9C%EC%9A%A9\">4. SQL 활용</a></p>\n<ul>\n<li>\n<ul>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80\">프로시저</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80%EC%9D%98-%EA%B0%9C%EC%9A%94\">프로시저의 개요</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80%EC%9D%98-%EA%B5%AC%EC%84%B1\">프로시저의 구성</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80-%EC%83%9D%EC%84%B1\">프로시저 생성</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80-%EC%8B%A4%ED%96%89\">프로시저 실행</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80-%EC%A0%9C%EA%B1%B0\">프로시저 제거</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%8A%B8%EB%A6%AC%EA%B1%B0\">트리거</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%8A%B8%EB%A6%AC%EA%B1%B0%EC%9D%98-%EA%B0%9C%EC%9A%94\">트리거의 개요</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%8A%B8%EB%A6%AC%EA%B1%B0%EC%9D%98-%EA%B5%AC%EC%84%B1\">트리거의 구성</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%8A%B8%EB%A6%AC%EA%B1%B0%EC%9D%98-%EC%83%9D%EC%84%B1\">트리거의 생성</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%ED%8A%B8%EB%A6%AC%EA%B1%B0%EC%9D%98-%EC%A0%9C%EA%B1%B0\">트리거의 제거</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%82%AC%EC%9A%A9%EC%9E%90-%EC%A0%95%EC%9D%98-%ED%95%A8%EC%88%98\">사용자 정의 함수</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%82%AC%EC%9A%A9%EC%9E%90-%EC%A0%95%EC%9D%98-%ED%95%A8%EC%88%98%EC%9D%98-%EA%B0%9C%EC%9A%94\">사용자 정의 함수의 개요</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%82%AC%EC%9A%A9%EC%9E%90-%EC%A0%95%EC%9D%98-%ED%95%A8%EC%88%98%EC%9D%98-%EA%B5%AC%EC%84%B1\">사용자 정의 함수의 구성</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%82%AC%EC%9A%A9%EC%9E%90-%EC%A0%95%EC%9D%98-%ED%95%A8%EC%88%98-%EC%83%9D%EC%84%B1\">사용자 정의 함수 생성</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%82%AC%EC%9A%A9%EC%9E%90-%EC%A0%95%EC%9D%98-%ED%95%A8%EC%88%98-%EC%8B%A4%ED%96%89\">사용자 정의 함수 실행</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%82%AC%EC%9A%A9%EC%9E%90-%EC%A0%95%EC%9D%98-%ED%95%A8%EC%88%98-%EC%A0%9C%EA%B1%B0\">사용자 정의 함수 제거</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#dbms-%EC%A0%91%EC%86%8D-%EA%B8%B0%EC%88%A0\">DBMS 접속 기술</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#dbms-%EC%A0%91%EC%86%8D-%EA%B8%B0%EC%88%A0%EC%9D%98-%EA%B0%9C%EC%9A%94\">DBMS 접속 기술의 개요</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#dbms-%EC%A0%91%EC%86%8D-%EA%B8%B0%EC%88%A0-1\">DBMS 접속 기술</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8F%99%EC%A0%81-sql\">동적 SQL</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#sql-%ED%85%8C%EC%8A%A4%ED%8A%B8\">SQL 테스트</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#sql-%ED%85%8C%EC%8A%A4%ED%8A%B8%EC%9D%98-%EA%B0%9C%EC%9A%94\">SQL 테스트의 개요</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EB%8B%A8%EB%AC%B8-sql-%ED%85%8C%EC%8A%A4%ED%8A%B8\">단문 SQL 테스트</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%A0%88%EC%B0%A8%ED%98%95-sql-%ED%85%8C%EC%8A%A4%ED%8A%B8\">절차형 SQL 테스트</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#orm\">ORM</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#ormobject-relational-mapping%EC%9D%98-%EA%B0%9C%EC%9A%94\">ORM(Object-Relational Mapping)의 개요</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#orm-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC\">ORM 프레임워크</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#orm%EC%9D%98-%ED%95%9C%EA%B3%84\">ORM의 한계</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%BF%BC%EB%A6%AC-%EC%84%B1%EB%8A%A5-%EC%B5%9C%EC%A0%81%ED%99%94\">쿼리 성능 최적화</a></p>\n<ul>\n<li>\n<ul>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%BF%BC%EB%A6%AC-%EC%84%B1%EB%8A%A5-%EC%B5%9C%EC%A0%81%ED%99%94%EC%9D%98-%EA%B0%9C%EC%9A%94\">쿼리 성능 최적화의 개요</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%8B%A4%ED%96%89-%EA%B3%84%ED%9A%8D\">실행 계획</a></li>\n<li><a href=\"/2020%20%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%ED%95%84%EA%B8%B0%20%EC%9A%94%EC%A0%90%20%EC%A0%95%EB%A6%AC(1)-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95(3)/#%EC%BF%BC%EB%A6%AC-%EC%84%B1%EB%8A%A5-%EC%B5%9C%EC%A0%81%ED%99%94-1\">쿼리 성능 최적화</a></li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>","frontmatter":{"title":"2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(3)","path":"/2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(3)/","images":["images/2.jpg"],"category":"정보처리기사 필기","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-01-03T05:00:00.000Z","components":null,"tweets":null,"summary":"2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(3)"}},"posts":{"edges":[{"node":{"frontmatter":{"type":"portfolio","title":"MOIJA","images":["moija/images/moija.png","moija/images/moija1.png","moija/images/moija2.png","moija/images/moija3.png","moija/images/moija4.png","moija/images/moija5.png"],"path":"/portfolios/moija/","tags":null,"date":"2022-03-02T00:00:00.000Z","summary":null}}},{"node":{"frontmatter":{"type":"portfolio","title":"VUELOG","images":["vuelog/images/vuelog.png","vuelog/images/vuelog1.png","vuelog/images/vuelog2.png","vuelog/images/vuelog3.png","vuelog/images/vuelog4.png","vuelog/images/vuelog5.png","vuelog/images/vuelog6.png"],"path":"/portfolios/VUELOG/","tags":null,"date":"2022-03-01T00:00:00.000Z","summary":null}}},{"node":{"frontmatter":{"type":"portfolio","title":"DT CENTER","images":["dtcenter/images/dtcenter.png","dtcenter/images/dtcenter1.png","dtcenter/images/dtcenter2.png","dtcenter/images/dtcenter3.png"],"path":"/portfolios/DT CENTER/","tags":null,"date":"2022-02-21T00:00:00.000Z","summary":null}}},{"node":{"frontmatter":{"type":"portfolio","title":"COLORBERRY","images":["ColorBerry/images/colorberry.png","ColorBerry/images/colorberry2.png","ColorBerry/images/colorberry3.png","ColorBerry/images/colorberry4.png","ColorBerry/images/colorberry5.png","ColorBerry/images/colorberry6.png","ColorBerry/images/colorberry7.png","ColorBerry/images/colorberry8.png"],"path":"/portfolios/COLORBERRY/","tags":null,"date":"2022-02-20T00:00:00.000Z","summary":null}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 요약","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 요약/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2021-0417T09:24:00000Z","summary":"[2020] 정보 처리 기사 실기 요약 입니다 정처기 공부를 할 때 활용하세요"}}},{"node":{"frontmatter":{"type":null,"title":"벡엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - node","images":["images/2.jpg"],"path":"/벡엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - node/","tags":["벡엔드","개발자","면접","기술면접","node"],"date":"2021-04-20T01:00:00.000Z","summary":"벡엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - node"}}},{"node":{"frontmatter":{"type":null,"title":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - Vue","images":["images/2.jpg"],"path":"/프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - Vue/","tags":["프론트엔드","개발자","면접","기술면접","Vue"],"date":"2021-04-15T01:00:00.000Z","summary":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - Vue"}}},{"node":{"frontmatter":{"type":null,"title":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - Vue(1)","images":["images/2.jpg"],"path":"/프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - Vue(1)/","tags":["프론트엔드","개발자","면접","기술면접","Vue"],"date":"2021-04-15T01:00:00.000Z","summary":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - Vue(1)"}}},{"node":{"frontmatter":{"type":null,"title":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - CSS","images":["images/2.jpg"],"path":"/프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - CSS/","tags":["프론트엔드","개발자","면접","기술면접","CSS"],"date":"2021-04-14T01:00:00.000Z","summary":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - CSS"}}},{"node":{"frontmatter":{"type":null,"title":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - React","images":["images/2.jpg"],"path":"/프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - React/","tags":["프론트엔드","개발자","면접","기술면접","React"],"date":"2021-04-14T01:00:00.000Z","summary":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - React"}}},{"node":{"frontmatter":{"type":null,"title":"RxJs 정리","images":["images/2.jpg"],"path":"/RxJs 정리/","tags":["벡엔드","개발자","프론트엔드","기술면접","RxJs"],"date":"2021-04-09T01:00:00.000Z","summary":"RxJs 정리"}}},{"node":{"frontmatter":{"type":null,"title":"벡엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 기술스택","images":["images/2.jpg"],"path":"/벡엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 기술스택/","tags":["벡엔드","개발자","면접","기술면접","기술스택"],"date":"2021-04-09T01:00:00.000Z","summary":"벡엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 기술스택"}}},{"node":{"frontmatter":{"type":null,"title":"벡엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - CS","images":["images/2.jpg"],"path":"/벡엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - cs/","tags":["벡엔드","개발자","면접","기술면접","CS"],"date":"2021-04-08T01:00:00.000Z","summary":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 자바스크립트 파트"}}},{"node":{"frontmatter":{"type":null,"title":"three.js 공부","images":["images/2.jpg"],"path":"/three.js 공부/","tags":["프론트엔드","개발자","면접","기술면접","자바스크립트"],"date":"2021-04-07T01:00:00.000Z","summary":"three.js 공부"}}},{"node":{"frontmatter":{"type":null,"title":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 자바스크립트(1)","images":["images/2.jpg"],"path":"/프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 자바스크립트(1)/","tags":["프론트엔드","개발자","면접","기술면접","자바스크립트"],"date":"2021-04-07T01:00:00.000Z","summary":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 자바스크립트(1) 파트"}}},{"node":{"frontmatter":{"type":null,"title":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 자바스크립트(2)","images":["images/2.jpg"],"path":"/프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 자바스크립트(2)/","tags":["프론트엔드","개발자","면접","기술면접","자바스크립트"],"date":"2021-04-07T01:00:00.000Z","summary":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 자바스크립트(2) 파트"}}},{"node":{"frontmatter":{"type":null,"title":"react 공부","images":["images/1.jpg"],"path":"/react 공부/","tags":["react.js","프론트엔드"],"date":"2021-04-05T12:23:00.000Z","summary":"react 공부"}}},{"node":{"frontmatter":{"type":null,"title":"vue 공부 1일차","images":["images/1.jpg"],"path":"/vue공부1일차/","tags":["vue.js","프론트엔드"],"date":"2021-04-04T12:23:00.000Z","summary":"vue 공부 1일차"}}},{"node":{"frontmatter":{"type":null,"title":"vue 공부 1일차","images":["images/1.jpg"],"path":"/vue공부1일차/","tags":["vue.js","프론트엔드"],"date":"2021-04-04T12:23:00.000Z","summary":"vue 공부 1일차"}}},{"node":{"frontmatter":{"type":null,"title":"history api 정리","images":["images/1.jpg"],"path":"/history api 정리/","tags":["네트워크 관리사 2급","자격증","소프트웨어"],"date":"2021-03-03T12:23:00.000Z","summary":"history api 정리"}}},{"node":{"frontmatter":{"type":null,"title":"프로그래머스 데브매칭 고양이 정리","images":["images/1.jpg"],"path":"/프로그래머스 데브매칭 고양이 정리/","tags":["네트워크 관리사 2급","자격증","소프트웨어"],"date":"2021-03-01T12:23:00.000Z","summary":"프로그래머스 데브매칭 고양이 정리입니다."}}},{"node":{"frontmatter":{"type":"portfolio","title":"ANGULOG","images":["angulog/images/angulog.png","angulog/images/angulog2.png","angulog/images/angulog3.png","angulog/images/angulog4.png","angulog/images/angulog5.png","angulog/images/angulog6.png"],"path":"/portfolios/ANGULOG/","tags":null,"date":"2021-02-23T00:00:00.000Z","summary":null}}},{"node":{"frontmatter":{"type":"portfolio","title":"MBTI WORLD","images":["mbtiworld/images/mbtiworld.png","mbtiworld/images/mbtiworld2.png","mbtiworld/images/mbtiworld3.png","mbtiworld/images/mbtiworld4.png","mbtiworld/images/mbtiworld5.png","mbtiworld/images/mbtiworld6.png","mbtiworld/images/mbtiworld7.png","mbtiworld/images/mbtiworld8.png","mbtiworld/images/mbtiworld9.png","mbtiworld/images/mbtiworld10.png"],"path":"/portfolios/MBTI WORLD/","tags":null,"date":"2021-02-19T00:00:00.000Z","summary":null}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 네트워크 관리사 2급 실기 요점 정리 - 리눅스_TCPIP_신경향","images":["images/1.jpg"],"path":"/[2020] 네트워크 관리사 2급 실기 요점 정리 - 리눅스_TCPIP_신경향/","tags":["네트워크 관리사 2급","자격증","소프트웨어"],"date":"2021-01-02T12:01:00.000Z","summary":"[2020] 네트워크 관리사 2급 실기 요점 정리 - 리눅스_TCPIP_신경향입니다."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 네트워크 관리사 2급 실기 요점 정리 - 라우터","images":["images/1.jpg"],"path":"/[2020] 네트워크 관리사 2급 실기 요점 정리 - 라우터/","tags":["네트워크 관리사 2급","자격증","소프트웨어"],"date":"2021-01-01T12:23:00.000Z","summary":"[2020] 네트워크 관리사 2급 실기 요점 정리 - 라우터입니다."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 네트워크 관리사 2급 실기 요점 정리 - 정리","images":["images/1.jpg"],"path":"/[2020] 네트워크 관리사 2급 실기 요점 정리 - 정리/","tags":["네트워크 관리사 2급","자격증","소프트웨어"],"date":"2021-01-01T12:23:00.000Z","summary":"[2020] 네트워크 관리사 2급 실기 요점 정리 - 정리입니다."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 네트워크 관리사 2급 실기 요점 정리 - 윈도우 서버","images":["images/1.jpg"],"path":"/[2020] 네트워크 관리사 2급 실기 요점 정리 - 윈도우 서버/","tags":["네트워크 관리사 2급","자격증","소프트웨어"],"date":"2021-01-01T12:21:00.000Z","summary":"[2020] 네트워크 관리사 2급 실기 요점 정리 - 윈도우 서버입니다."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 리눅스 마스터 2급 2차 요점 정리","images":["images/1.jpg"],"path":"/[2020] 리눅스 마스터 2급 2차 요점 정리 - 리눅스 일반/","tags":["리눅스 마스터 2급","자격증","소프트웨어"],"date":"2020-12-03T12:21:00.000Z","summary":"[2020] 리눅스 마스터 2급 2차 (1) 리눅스 일반 요점 정리입니다."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 16-단답형 문제(4)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 16-단답형 문제(4)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-10-15T09:24:00000Z","summary":"[2020] 정보 처리 기사 실기 16-단답형 문제(4)입니다 정처기 공부를 할 때 활용하세요"}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 15-단답형 문제(3)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 15-단답형 문제(3)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-10-15T09:22:00000Z","summary":"[2020] 정보 처리 기사 실기 15-단답형 문제(3)입니다 정처기 공부를 할 때 활용하세요"}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 14-단답형 문제(2)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 14-단답형 문제(2)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-10-15T09:21:00000Z","summary":"[2020] 정보 처리 기사 실기 14-단답형 문제(2)입니다 정처기 공부를 할 때 활용하세요"}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 13-단답형 문제(1)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 13-단답형 문제(1)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-10-14T16:21:00000Z","summary":"[2020] 정보 처리 기사 실기 13-단답형 문제(1)입니다 정처기 공부를 할 때 활용하세요"}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 12-정보 용어 정리","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 12-정보 용어 정리/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-10-14T02:21:00.000Z","summary":"2020 정보 처리 기사 실기 12-정보 용어 정리 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 11-제품 소프트웨어 패키징","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 11-제품 소프트웨어 패키징/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-17T23:03:00.000Z","summary":"2020 정보 처리 기사 제품 소프트웨어 패키징 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 10-응용 SW 기초 기술 활용(3)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 10-응용 SW 기초 기술 활용(3)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-17T21:03:00.000Z","summary":"2020 정보 처리 기사 응용 SW 기초 기술 활용 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 10-응용 SW 기초 기술 활용(2)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 10-응용 SW 기초 기술 활용(2)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-17T21:02:00.000Z","summary":"2020 정보 처리 기사 응용 SW 기초 기술 활용 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 10-응용 SW 기초 기술 활용(1)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 10-응용 SW 기초 기술 활용(1)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-17T21:01:00.000Z","summary":"2020 정보 처리 기사 응용 SW 기초 기술 활용 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 9-소프트웨어 보안 구축","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 9-소프트웨어 보안 구축/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-17T19:00:00.000Z","summary":"2020 정보 처리 기사 소프트웨어 보안 구축 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 8-SQL 응용","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 8-SQL 응용/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-17T12:45:00.000Z","summary":"2020 정보 처리 기사 SQL 응용 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 6-화면 설계","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 6-화면 설계/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-16T17:00:00.000Z","summary":"2020 정보 처리 기사 화면 설계 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 7-애플리케이션 테스트 관리","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 7-애플리케이션 테스트 관리/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-16T17:00:00.000Z","summary":"2020 정보 처리 기사 애플리케이션 테스트 관리 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 5-서버 프로그램 구현","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 5-서버 프로그램 구현/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-16T06:31:00.000Z","summary":"2020 정보 처리 기사 서버 프로그램 구현 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 4-통합 구현","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 4-통합 구현/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-16T05:31:00.000Z","summary":"2020 정보 처리 기사 통합 구현 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 3-데이터 입출력 구현","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 3-데이터 입출력 구현/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-15T17:22:00.000Z","summary":"2020 정보 처리 기사 데이터 입출력 구현 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 2-요구 사항 확인","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 2-요구 사항 확인/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-15T17:21:00.000Z","summary":"2020 정보 처리 기사 요구 사항 확인 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[파이썬] itertools 에 대해서 알아보자","images":["images/4.jpg"],"path":"/[파이썬] itertools 에 대해서 알아보자/","tags":["파이썬","itertools","알고리즘"],"date":"2020-07-15T17:00:00.000Z","summary":"파이썬으로 순열, 조합을 빠르게 구해주는 라이브러리"}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 1-프로그래밍 언어 활용(3)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 1-프로그래밍 언어 활용(3)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-11T22:23:00.000Z","summary":"2020 정보 처리 기사 프로그래밍 언어 활용 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 1-프로그래밍 언어 활용(2)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 1-프로그래밍 언어 활용(2)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-11T22:21:00.000Z","summary":"2020 정보 처리 기사 프로그래밍 언어 활용 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 1-프로그래밍 언어 활용(1)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 1-프로그래밍 언어 활용(1)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-11T20:21:00.000Z","summary":"2020 정보 처리 기사 프로그래밍 언어 활용 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[파이썬] 파이썬을 이용한 이진탐색트리 구현","images":["images/4.jpg"],"path":"/[파이썬] 파이썬을 이용한 이진탐색트리 구현/","tags":["파이썬","알고리즘","이진탐색트리"],"date":"2020-07-06T22:06:00.000Z","summary":"파이썬을 이용한 이진탐색트리 구현"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(5)-프로그래밍 언어 활용(3)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(5)-프로그래밍 언어 활용(3)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-05-03T01:00:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(5)-프로그래밍 언어 활용(3)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(5)-프로그래밍 언어 활용(2)(운영체제)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(5)-프로그래밍 언어 활용(2)(운영체제)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-05-02T01:00:00.000Z","summary":"응용 SW 기초 기술 활용"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(5)-프로그래밍 언어 활용(1)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(5)-프로그래밍 언어 활용(1)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-05-01T01:00:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(5)-프로그래밍 언어 활용(1)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(4)-정보시스템 구축 관리(3)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(4)-정보시스템 구축 관리(3)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-04-03T03:05:00.000Z","summary":"정보시스템 구축 관리"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(4)-정보시스템 구축 관리(2)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(4)-정보시스템 구축 관리(2)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-04-02T03:05:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(4)-정보시스템 구축 관리(2)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(4)-정보시스템 구축 관리(1)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(4)-정보시스템 구축 관리(1)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-04-01T03:05:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(4)-정보시스템 구축 관리(1)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(3)-소프트웨어 설계(3)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(3)-소프트웨어 설계(3)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-03-03T02:01:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(3)-소프트웨어 설계(3)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(3)-소프트웨어 설계(2)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(3)-소프트웨어 설계(2)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-03-02T02:01:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(3)-소프트웨어 설계(2)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(3)-소프트웨어 설계(1)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(3)-소프트웨어 설계(1)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-03-01T02:01:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(3)-소프트웨어 설계(1)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(2)-소프트웨어 개발(3)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(2)-소프트웨어 개발(3)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-02-03T05:00:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(2)-소프트웨어 개발(3)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(2)-소프트웨어 개발(2)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(2)-소프트웨어 개발(2)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-02-02T05:00:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(2)-소프트웨어 개발(2)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(2)-소프트웨어 개발(1)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(2)-소프트웨어 개발(1)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-02-01T05:00:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(2)-소프트웨어 개발(1)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(3)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(3)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-01-03T05:00:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(3)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(2)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(2)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-01-02T05:00:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(2)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(1)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(1)/","tags":["정보처리기사 필기","정보처리기사","필기","데이터베이스 구축"],"date":"2020-01-01T05:00:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(1)"}}},{"node":{"frontmatter":{"type":"portfolio","title":"CAPTURE BLOG","images":["CaptureBlog/images/capture1.png","CaptureBlog/images/capture2.png","CaptureBlog/images/capture3.png","CaptureBlog/images/capture4.png","CaptureBlog/images/capture5.png","CaptureBlog/images/capture6.png"],"path":"/portfolios/CAPTURE BLOG/","tags":null,"date":"2020-01-01T00:00:00.000Z","summary":null}}},{"node":{"frontmatter":{"type":"portfolio","title":"LANGUAGE TOGETHER","images":["languageTogether/images/languagetogether.png","languageTogether/images/languagetogether2.png","languageTogether/images/languagetogether3.png","languageTogether/images/languagetogether4.png","languageTogether/images/languagetogether5.png","languageTogether/images/languagetogether6.png","languageTogether/images/languagetogether7.png","languageTogether/images/languagetogether8.png","languageTogether/images/languagetogether9.png"],"path":"/portfolios/LANGUAGE TOGETHER/","tags":null,"date":"2018-01-01T00:00:00.000Z","summary":null}}},{"node":{"frontmatter":{"type":"portfolio","title":"MOVIE STAR","images":["moviestar/images/moviestar.png","moviestar/images/moviestar2.png","moviestar/images/moviestar3.png","moviestar/images/moviestar4.png"],"path":"/portfolios/MOVIE STAR/","tags":null,"date":"2018-01-01T00:00:00.000Z","summary":null}}},{"node":{"frontmatter":{"type":"resume","title":"Resume","images":null,"path":"/resume/","tags":null,"date":"2000-01-01T00:00:00.000Z","summary":null}}}]}},"pageContext":{}}}